Робота з текстовими файлами в visual basic

32 33 34 1 2 35 36 37 38 39 40 41 4 42 43 44 45 46 47 5 48 49 6 50 51 52 53 54 55 56 57 58 9 59 10 60 7 61 62 63 64 65 66 67 68 69 8 70 71 72 11 73 74 75 76 77 78 14 79 80 81 31 17 15 82 16 20 83 84 85 19 86 87 88 30 89 18 90 21 91 92 93 94 95 96 97 98 99 22 100 101 102 103 104 105 23 24 106 107 108 26 109 13 110 111 29 28 112 113 114 115

Увага Знижка 50% на курси! поспішайте подати
заявку

Професійної перепідготовки 30 курсів від 6900 руб.

Курси для всіх від 3000 руб. від 1500 руб.

Підвищення кваліфікації 36 курсів від 1500 руб.

Робота з текстовими файлами в Visual Basic.

Зовсім недавно в непомню який коференції я бачив запис якогось людини, який просив, щоб хоч хто-небудь пояснив йому елементарну роботу з файлами. Здавалося б таке просте. Але це просте для тих, хто вже хоч трохи просунувся в програмуванні, а хто це тільки почав? Це ж, дійсно, непрохідний ліс! І я сильно сумніваюся, щоб хто-небудь з інших наших Web-майстрів коли-небудь приділить цьому хоч якусь увагу. Тому цим займуся я і спробую в цій статті показати тільки основи.

1. Відкриття файлу для читання інформації з нього.

Отже, щоб безпроблемно працювати з текстовими файлами спочатку їх потрібно відкрити. Робиться це за допомогою оператора Open, наприклад:

Open "c: \ text.txt" For Input As # 1

Зверніть увагу на режим відкриття файлу - Input (для читання). Тут файл text.txt відкривається для зчитування під номером 1. Увага. Номер файлу - обов'язковий параметр, і вводити його потрібно завжди! Якщо ваша програма буде мати справу не з одним десятком відкритих файлів, то встежити за їх нумерацією буде важкувато. Використовуйте для цього функцію FreeFile. Вона повертає ще не зайнятий номер (від 1 до 511) для файлу:

Dim FileNum As Integer

Open "c: \ text.txt" For Input As FileNum

Так, файл відкрили! Тепер з нього потрібно що-небудь вважати. Оператор Line Input зчитує з відкритого файлу по одному рядку при кожному виклику. Тому для зчитування з файлу потрібно побудувати цикл, який би викликав цей оператор до тих пір, поки не дійшов би до кінця файлу:

цикл виконується, поки кінець файлу не досягнуть

Do Until EOF (FileNum)

при кожному виклику оператора Line Input він записує в

змінну новою рядок

Line Input #FileNum, змінна

Закрити відкритий файл можна оператором Close #FileNum. А тепер ось як це має виглядати в практиці:

Dim FileNum As Integer

Dim txt As String

Dim alltxt As String

відкриваємо файл в режимі читання

Open "c: \ text.txt" For Input As FileNum

запускаємо вищезгаданий цикл

Do Until EOF (FileNum)

зчитуємо рядок з файлу з номером FileNum і кладемо її в

Line Input #FileNum, txt

тепер до змінної alltxt додаємо вміст змінної txt -

рядки і vb-константу vbCrLf (Chr (13) + Chr (10)), тому що кожен рядок

повинна бути з нового рядка :-)

alltxt = alltxt + txt + vbCrLf

закриваємо файл з номером FileNum

виводимо вміст змінної alltext

2. Відкриття файлу для запису інформації в нього.

Записати інформацію в файл ще простіше. Ця операція відрізняється від попередньої тільки тим, що відкрити файл треба в режимі запису:

Open "c: \ text.txt" For Output As FileNum

і замість циклу потрібно вставити оператор Print #, який записує в файл вміст змінної:

Print #FileNum, "Азбука Visual Basic"

Print #FileNum, alltext

Dim FileNum As Integer

Dim txt As String

відкриваємо файл в режимі запису

Open "c: \ text.txt" For Output As FileNum

Print #FileNum, txt

закриваємо файл з номером FileNum

Перевірте вміст файлу.

І ще хочу запропонувати другий спосіб запису інформації в файл - за допомогою API-функції WritePrivateProfileStringByKeyName. Зчитувати ж інформацію потрібно з допомогою API-функції GetPrivateProfileString. Тепер розповім - як все це працює?

1.Создать стандартний проект.

3.Удаліте форму і клікніть двічі по модулю.

Declare Function GetPrivateProfileString Lib _

"Kernel32" Alias ​​"GetPrivateProfileStringA" (ByVal _

lpszSection $, ByVal lpszKey $, ByVal lpszDefault $, _

ByVal lpszReturnBuffer $, ByVal cchReturnBuffer, _

lpszSection - ім'я секції

lpszKey - ім'я ключа

lpszDefault - значення, що повертається за замовчуванням, при рядку ""

lpszReturnBuffer - місце для рядка

cchReturnBuffer - розмір (довжина) місця для рядка

lpszFile - ім'я файлу

Declare Function WritePrivateProfileStringByKeyName% Lib _

"Kernel32" Alias ​​"WritePrivateProfileStringA" (ByVal _

lpApplicationName As String, ByVal lpKeyName As String, _

ByVal lpString As String, ByVal lplFileName As String)

lpApplicationName - ім'я секції

lpKeyName - ім'я ключа

lplFileName - ім'я файлу

5. Створіть підпрограму Main - просто введіть Sub Main.

6. У підпрограму Main введіть:

створюємо файл test.ini, в ньому заголовок "Main", ключ "URL" _

Call WritePrivateProfileStringByKeyName ( "Main", "URL", _

створюємо файл test.ini, в ньому заголовок "Main", ключ "eMail" _

і рядок "[email protected]"

Call WritePrivateProfileStringByKeyName ( "Main", "eMail", _

При запуску проекту на диску С: тут же буде створений файл Test.ini наступного змісту:

8: -O. Чи не правда, просто? А вважати це трохи складніше. Отже, файл створений, тепер поробуем вважати інформацію звідти. Видаліть все, що знаходиться між рядками "Sub Main ()" і "End Sub". Впишіть наступне:

створюємо змінну, в яку буде передовалась рядок

Dim MyString As String

"Набиваємо" її пробілами

відкривається файл файл test.ini, і в змінну MyString _

записується рядок із заголовка "Main", ключа "URL"

Call GetPrivateProfileString ( "Main", "URL", "", MyString, _

виводиться на екран вміст змінної MyString

відкривається файл файл test.ini, і в змінну MyString _

записується рядок із заголовка "Main", ключа "eMail"

Call GetPrivateProfileString ( "Main", "eMail", "", MyString, _

виводиться на екран вміст змінної MyString

Схожі статті

Copyright © 2024