Команды из файла

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 05.06.2006 (Пн) 12:48

Хранил бы ты автор, все в XML. И проблем бы не знал, чесслово.

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 05.06.2006 (Пн) 12:54

Похоже что это не он хранит. Он просто использует файл такого формата. Так что ничего не поделать
Весь мир матрица, а мы в нем потоки байтов!

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 05.06.2006 (Пн) 16:15

строка ограниченной длины

o_O Не понял...
Если посмотреть ее значение сразу после объявления, все пространство просмотра покрывается квадратиками :shock:

Похоже что это не он хранит. Он просто использует файл такого формата. Так что ничего не поделать

А это вас как понимать?
Подпись находится в стадии разработки...

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 05.06.2006 (Пн) 18:06

vvs_adm писал(а):arrvar = Split(Var, vbNewLine)

Мля, нет у меня в VB5 этого Split!
Подпись находится в стадии разработки...

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 05.06.2006 (Пн) 18:10

Конь писал(а):Мля, нет у меня в VB5 этого Split!
Мля, а у меня нету VB5 :) Нету сплита - дели строку на части сам. Тем более что Хакер тебе написал, как...
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.06.2006 (Пн) 18:12

Конь использую мой код. Так как я телепат, я знал что у тебя нету сплита и написал более хитрый код.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 05.06.2006 (Пн) 20:20

Конь писал(а):Мля, нет у меня в VB5 этого Split!

Что подразумевалось под "Мля"?
Lasciate ogni speranza, voi ch'entrate.

vvs_adm
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1492
Зарегистрирован: 03.02.2005 (Чт) 3:45
Откуда: оттуда ;)

Сообщение vvs_adm » 05.06.2006 (Пн) 21:28

alibek писал(а):Что подразумевалось под "Мля"?
Совсем не тоже, что у меня :lol: И вообще, меня спровоцировали :roll:
Никогда не откладывай на завтра то, что можно ... отложить на послезавтра!

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 05.06.2006 (Пн) 21:56

alibek

моля о помощи
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

GB826
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 312
Зарегистрирован: 04.08.2005 (Чт) 0:58
Откуда: Планета #3

Сообщение GB826 » 05.06.2006 (Пн) 23:54

o_O Не понял...
Если посмотреть ее значение сразу после объявления, все пространство просмотра покрывается квадратиками


А ты не смотри, а то мозг ими покроется... :wink:

А чем должна быть забита строка фиксированной длины?

:? Так, и че код, который я дал, не помогает?

Конь, включай мозг.
Выход в ini или xml, второе ты, пока что, не осилишь...
Пора уже всем хорошим людям собраться и убить всех плохих людей.

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 06.06.2006 (Вт) 5:48

GB826
Ты про код для записи инфы в INI?

Хакер
Сейчас, конечно, попробую твой код, но, честно скажу, я ничего в нем не понимаю, кроме трех-четырех строчек :oops:
Подпись находится в стадии разработки...

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 06.06.2006 (Вт) 6:54

Хакер
Не работает твой код.
Ошибка во время выполнения строки "listVar.AddItem Mid$(sData, iStart + 2, iEnd - iStart - 2)"

Run-time error '5':
Invalid procedure call or argument

Вот значения переменных:

sData = vbCrLf & "vv" & vbCrLf & "gg" & vbCrLf
iStart = 6
iEnd = 5

ЧАГО за фыгня? (с)
Подпись находится в стадии разработки...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 06.06.2006 (Вт) 7:11

еще бы... из строки длиной 8 символов ты пытаешься извлечь -3(!!!) символа начиная с 8-го
Весь мир матрица, а мы в нем потоки байтов!

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 06.06.2006 (Вт) 7:27

Ну да, и я про то же...
Подпись находится в стадии разработки...

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 06.06.2006 (Вт) 10:07

Хакер
Огромная просьба исправить код!
Подпись находится в стадии разработки...

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 06.06.2006 (Вт) 11:51

Все работает, если код выглядит так:

Код: Выделить всё
Private Function AddItem(ByVal sData As String) As Boolean
Dim cvbNewLine  As Integer: cvbNewLine = Len(vbNewLine)
Const sEmpty As String = ""
Dim iStart      As Integer: iStart = 1 + cvbNewLine
Dim iEnd        As Integer
    sData = IIf(Mid$(sData, 1, cvbNewLine) = vbNewLine, sEmpty, vbNewLine) + sData + IIf(Right$(sData, cvbNewLine) = vbNewLine, sEmpty, vbNewLine)
    Do
        iEnd = InStr(iStart, sData, vbNewLine):
        If iEnd = 0 Then Exit Do
        listVar.AddItem Mid$(sData, iStart, iEnd - iStart)
        iStart = iEnd + cvbNewLine
        AddItem = True
    Loop
End Function
Весь мир матрица, а мы в нем потоки байтов!

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 06.06.2006 (Вт) 15:38

УРРЯЯЯ!!! Работает! 8)
Подпись находится в стадии разработки...

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 06.08.2006 (Вс) 21:38

Мда, возвращаемся к этой теме.
Задача, конечно, решена, но вопрос не закрыт.
Если у меня есть файл с VB-кодом, можно этот код выполнить?
Подпись находится в стадии разработки...

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 06.08.2006 (Вс) 21:42

Если бы было можно, кто бы стал покупать VB?
Сделал прогу-выполнялку -- и готово, VB не нужен, можно любой VB-код просто так выполнять.
Изображение

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 06.08.2006 (Вс) 21:51

Отсюда следует, что нельзя?
Подпись находится в стадии разработки...

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 06.08.2006 (Вс) 23:51

Его обычно можно перевести его на VBScript с минимальными потерями...
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2006 (Пн) 6:37

Ну, например вызовы API ты не переведёшь.
А также UDT, обработчики ошибок, и много чего ещё.
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.08.2006 (Пн) 8:52

tyomitch писал(а):обработчики ошибок

:?:
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2006 (Пн) 8:57

Код: Выделить всё
On Error GoTo Label
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.08.2006 (Пн) 9:00

Ну да.
Но почему их не переведешь в VBS?
Lasciate ogni speranza, voi ch'entrate.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2006 (Пн) 9:42

Потому что там они не поддерживаются :roll:
Изображение

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 07.08.2006 (Пн) 10:23

Надо же... И правда.
Lasciate ogni speranza, voi ch'entrate.

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 07.08.2006 (Пн) 12:25

Там есть On error resume next и объект err. А для вызова апишек можно накатать ActiveX. Но у него-то всё выполняется в контексте своей проги, а посему для скрипта можно создать удобное окружение.
Изображение

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 07.08.2006 (Пн) 14:49

keks-n писал(а):Там есть On error resume next и объект err.

И тем не менее, обработчиков ошибок там нет. Даже используя названные тобой фичи, их не собрать.
Изображение

keks-n
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2509
Зарегистрирован: 19.09.2005 (Пн) 17:17
Откуда: г. Москва

Сообщение keks-n » 07.08.2006 (Пн) 15:16

Обработчик можно эмулировать. Например вызывать, при выскакивании ошибки ScriptControl'а некую функцию скрипта. А для эмуляции UDT создать хитрый класс. В целом VBScript, конечно, не VB, но перевести код, используя предварительно созданное окружение можно.
Изображение

Пред.След.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex-бот и гости: 87

    TopList