Оглавление:

Программирование на VB6: советы и рекомендации: 3 шага
Программирование на VB6: советы и рекомендации: 3 шага

Видео: Программирование на VB6: советы и рекомендации: 3 шага

Видео: Программирование на VB6: советы и рекомендации: 3 шага
Видео: Программирование на Visual Basic с нуля #1 2024, Ноябрь
Anonim
Программирование на VB6: советы и хитрости
Программирование на VB6: советы и хитрости

Я программирую в свободное время и являюсь довольно опытным программистом, использующим VB6. Это легко, и мне еще предстоит найти что-то, что мне нужно, чтобы выполнить то, чего не может, хотя иногда это может быть привередливым для выполнения вашей задачи. По пути я обнаружил так много раздражающих вещей, в основном из-за того, как они считают определенные вещи. Итак, вот подборка вещей, которые я узнал по ходу дела. Я призываю вас, если у вас есть какие-либо проблемы, прокомментируйте, и я постараюсь помочь с дополнительными шагами.

Шаг 1: струны

Струны
Струны

То, как VB работает со строками, иногда сбивает с толку. Texta = "abcdefg" помещает "символы с обеих сторон текста, которые вы хотите засчитывать как строкуMid (String, Start, Length) выбирает часть текста из строки, в строках нет нулевые начальные строки начинаются с 1textb = mid (texta, 2, 2) это делает переменную textb = "bc" textb = mid (texta, 4, 4) это делает переменную textb = "defg" textb = mid (texta, 4, 5) это делает переменную textb = "defg". Это правильно, если текст, который вы пытаетесь выделить, длиннее доступного текста, он заканчивается последним символом, в зависимости от вашей программы, вам придется расставлять ловушки, чтобы избежать ошибок. такая ловушка: textb = mid (texta, 4, 5) если len (textb) <5, то 'Len () возвращает длину строки, <означает меньше, чем msgbox "текст слишком короткий"' Показывает окно сообщения с the stringexit sub 'Это закрывает подпрограмму, в которой вы находитесь. завершение кода. если вы находитесь в функции, вы должны поставить exit functionend, если при поиске места символа в строке мы используем instr (Start, Stri ng1, String2) texta = "abcdefg" textb = instr (1, texta, "c") 'это находит букву c в строке textatextb теперь равняется 3 ПРИМЕЧАНИЕ: Instr возвращает 0 (ноль), если не находит символ. раздражает, что вы хотите, чтобы "abcdefg" был "defgabc" texta = "abcdefg" textb = mid (texta, 4, 4) & mid (texta, 1, 3) Это было неплохо, но теперь давайте добавим в instr () говорят, что вы хотите реорганизовать строку в символе занавеса, но это не то же самое место everytimetexta = "abcdefg" textb = "gfabdec" textc = mid (texta, instr (1, texta, "c"), len (texta) - instr (1, texta, "c") + 1) & mid (texta, 1, instr (1, texta, "c") - 1) обратите внимание на часть len (texta) - instr (1, texta, " c ") + 1, потому что instr считает символ, который вы ищете, поэтому вы возвращаетесь на один символ, поэтому mid () принимает символ, который вы ищете, как первый в строке textc теперь равен" cdefgab "textd = mid (textb, instr (1, textb, "c"), len (textb) - instr (1, textb, "c") + 1) и mid (textb, 1, instr (1, textb, "c") - 1) textd now equa ls "cgfabde" позволяет попробовать найти символ, которого нет в строке texta = "abcdefg" textc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) вы получите ошибку, потому что начальная часть Mid () не может = 0, так как строки начинаются с 1, поэтому вам нужно избегать времени выполнения ошибка. это один из способов сделать это texta = "abcdefg", если instr (1, texta, "h") 0 thentextc = mid (texta, instr (1, texta, "h"), len (texta) - instr (1, texta, "h") + 1) & mid (texta, 1, instr (1, texta, "h") - 1) else 'только один оператор else для ситуации if msgbox "Cannot find character in string"' показывает окно сообщения с конец строки ifThis суммирует почти все, что вам нужно знать о строках

Шаг 2: преобразование символов

Преобразование символов
Преобразование символов

HEX: Один, который я обнаружил ранее на этой неделе, связан с функцией Hex (число), длина числа не имеет значения. Он возвращает строку в шестнадцатеричном формате (11111111), возвращает «A98AC7» при преобразовании символа ascii в шестнадцатеричный, вы бы dotexta = "a" шестнадцатеричный (asc (texta)) возвращает "61" texta = "k" шестнадцатеричный (asc (texta)) возвращает "6B" строка будет состоять из 2 символов для БОЛЬШИНСТВА символов ASCI, если только они не имеют значения 16 тогда он возвращает только 1 символ, если вы хотите, чтобы все они состояли из 2 символов, вы должны сделать следующее: textb = hex (asc (texta)) if len (textb) = 1 thentextb = "0" and textb ', который является нулем, а не a капитал в конце, если

Шаг 3: Редактирование файла

Редактирование файлов
Редактирование файлов

чтобы открыть файл, вам нужен freefile и имя файла gfile = FreeFile 'gfile теперь является следующим доступным freefilec = "c: / test.txt", тогда есть 4 способа открыть файл. Вход - вы можете только читать. Вывод - вы можете только писать, и он сотрет файл, если он существует. Возврат каретки и последние символы перевода строки Добавить - Можно только писать. он добавится к существующему файлу. возврат каретки и последние символы перевода строки Двоичный - чтение и запись. очень точно. единственный, который я использую сейчас. для создания файлов журнала и добавления такого использования он добавит новую запись в конец файла. для более сложных файлов журнала загрузите весь файл в переменную и добавьте новую запись в начало файл.dim stro как строка 'это необходимо, иначе будет ошибка gfile = FreeFilec = "c: / test.txt" открыть c для двоичного файла как #gfile' помните, что gfile - это число 'при открытии для двоичного файла вы должны указать, насколько велика длина текста, который вы хотите взять, lof (gfile) вернет длину gfile, а пробел $ () вернет строку пробелов длиной введенного вами числа get #gfile, 1, выбрать из файла номер, начальный байт, переменную, в которую его нужно сохранить. и загружает только переменную, длина которой close #gfilestro теперь равна значению файла test.txt. вы можете поместить информацию в файл byffile = FreeFilestro = "Новая строка" & VbCrLf & stro 'добавляет "Новая строка", а также возврат и перевод строки за которым следует исходный текстовый текст textopen c для двоичного файла, как #ffilekill cput #ffile, 1, stro 'put перезаписывает предыдущую информацию, если файл становится меньше, вы должны сначала убить файл, который удаляет егоclose #ffiletв файле теперь есть «Новая строка». Я обнаружил, что с помощью функции put есть ошибки, если вы пытаетесь поместить символ вродеput #ffile, 133, chr (1) ', это заменяет символ в байте 133 на символ 1 или шестнадцатеричный 0x01 Я обнаружил, когда сделал это с одной программой I на самом деле он добавил шестнадцатеричный 0x08000100000001, что чертовски странно. Я решил это, загрузив файл в переменную и выполнив строку modsi = 133stro = mid (stro, 1, i - 1) & chr (1) & mid (stro, i + 1, len (stro) - i), затем поместите #ffile, 1, stroэто сработало отлично

Рекомендуемые: