Модераторы: Akina
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Срочно! Срочно! 
:(
    Опции темы
Impulse
  Дата 26.1.2005, 06:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 72
Регистрация: 5.1.2005
Где: г. Чита

Репутация: нет
Всего: нет



Ребята срочно надо инфу по работе с *.txt, втавка, редакт, удаление строк. - как можно более полную информацию.
PM MAIL ICQ   Вверх
Akina
Дата 26.1.2005, 10:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Подходов несколько:
1) Работа с одной строкой.
2) Работа с массивом строк.
3) Работа с буфером текста (2 указателя).
4) ...

А чего надо-то? конкретно?

И эта... тему переименуй... что-нить более содержательное...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Gannibal
Дата 26.1.2005, 19:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



Работа с файлами в VB, последовательный доступ к файлам

Открытие файла:

Open Имя_файла For [Input \ Output \ Append] As FileHandle

Input - для чтения из файла, Output - для записи, Append - для добавления, FreeFile-номер канала, возвращаемый функцией FreeFile.

Чтение данных из файла:

1)Line Input # считывает одну строку;

2)Input # считывает последовательность символов, обычно записанных с помощью оператора Write #;

2)Input$ считывает определенное количество символов

Запись данных в файл

для записи информации в файл используются операторы Print # и Write #.

Закрытие файла Close #intFH

Примеры

Код

'Чтение бинарного файла в массив байт
Open sFileName For Binary Access Read As #1
   Get #1, , TheBytes()
Close #1

'запись массива байт в файл
Open sFileName For Binary Access Write As #1
   Put #1, , TheBytes()
Close #1

'Построчное чтение текстового файла
iFile = FreeFile
   Open App.Path & "\" & sININame For Input As iFile
       Do While Not EOF(iFile) ' Loop until end of file.
           Line Input #iFile, txt
           'sINI = sINI + txt + vbCrLf
       Loop
   Close iFile

'построчная запись в текстовый файл
   fnum = FreeFile
   file_name = App.Path
   If Right$(file_name, 1) <> "\" _
       Then file_name = file_name & "\"
   file_name = file_name & LOG_FILE_NAME
   Open file_name For Append As #fnum

   ' Remember that the file is open.
   file_open = True

   ' Write the date and time, and the error message.
   Print #fnum, Now
   Print #fnum, "Computer: " & ComputerName
   Print #fnum, txt1
   Print #fnum, "**********"

   ' Close the file.
   Close #fnum

'Далее приведены 2 готовые функции, читающие текстовый файл в строковую переменную.
'первая читает построчно, вторая файл целиком. По быстродействию вторая функция значительно быстрее.
Public Function File2Str(sPath As String) As String
Dim txt As String
Dim sLine As String
Dim fn As Long
fn = FreeFile
   Open sPath For Input As fn
   Do While Not EOF(1)
       Line Input #fn, sLine
       txt = IIf(Len(txt) > 0, txt & vbCrLf, "") & sLine
   Loop
Close fn
File2Str = txt
End Function
'am 030505
Public Function File2StrB(sPath As String) As String
Dim txt As String
Dim sLine As String
Dim fn As Long
fn = FreeFile
Dim TheBytes() As Byte
ReDim TheBytes(FileLen(sPath) - 1)
   Open sPath For Binary Access Read As fn
       Get #fn, , TheBytes()
   Close fn
File2StrB = StrConv(TheBytes(), vbUnicode)
End Function


если это то что надо было.. smile


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Gannibal
Дата 26.1.2005, 19:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



http://www.vbnet.ru/articles/showarticle.aspx?id=35 почитай неплохая статья


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
Gannibal
Дата 26.1.2005, 19:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 742
Регистрация: 15.4.2003
Где: 010101

Репутация: 18
Всего: 17



VB - работа с файлами

Каждая программа должна сохранять данные на диск и читать их с диска. Это необходимо, например, для сохранения настроек программы, вряд ли пользователю понравится программа, которую при следующем запуске придется настраивать заново.

В данной статье речь пойдет о работе с текстовыми файлами средствами Visual Basic.

Дескриптор файла Для работы с файлами операционная система использует каналы ввода/вывода, т.е. каждый открытый файл имеет свой номер.

В Visual Basic существует функция FreeFile, которая возвращает номер свободного канала, который можно использовать для работы с файлом. Если свободных каналов нет, то возникает ошибка.

Код

[b]FreeFile[/b] [ (RangeNumber) ]


RangeNumber -необязательный параметр, который позволяет определить диапазон значений свободных каналов, если RangeNumber = 0 (по умолчанию), то возвращается номер канала из диапазона 1 - 255, а если 1, то из диапазона 256 - 511.

Пример:

Код

MyFile = FreeFile ' Переменной MyFile присвоен свободный канал и теперь ее можно использовать для работы с файлами


Работа с текстовыми файлами

Наиболее часто приходится встречаться с текстовыми файлами. Текстовые файлы состоят из набора символов ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией).

Прежде чем начать записывать/считывать данные, файл необходимо открыть, делается это при помощи оператора Open (Имя_файла) For [Input | Output | Append] As #Номер_файла, где:

Input - открыть файл для чтения, если файл не существует, то возникает ошибка;
Output - для записи, если файл не существует, то он будет создан, а если файл существует, то он будет перезаписан;
Append - для добавления, если файл не существует то он будет создан, а если файл существует, то данные будут добавляться в конец файла.

Чтение текстовых файлов можно производить двумя способами: читать посимвольно, для этого используется функция Input(Количество_считываемых_символов, #Номер_файла) и построчно, для этого используется функция Line Input #Номер_файла, Куда_считывать.

Например, если надо считать первую строку из какого-нибудь файла в переменную S, то код будет таким:

Dim MyFile 'Объявляем переменную для свободного файла
Dim S As String 'Переменная для хранения считанных данных

Код

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
Open ("C:\TEST.txt") For Input As #MyFile 'Открываем файл TEST.TXT для чтения
Line Input #MyFile, S 'Считываем первую строку из файла TEST.TXT в переменную S
Close #MyFile 'Закрываем файл


Если, например, надо считать не первую, а пятую строку, то код будет немного другой:

Код

Dim MyFile 'Объявляем переменную для свободного файла
Dim i As Integer 'Переменная для цикла
Dim tS As String 'Переменная для считывания строк
Dim S As String 'Переменная для хранения окончательных данных


MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
Open ("C:\TEST.txt") For Input As #MyFile 'Открываем файл TEST.TXT для чтения

For i = 1 To 5
Line Input #MyFile, tS 'Читаем файл TEST.TXT построчно
If i => 5 Then S = tS 'Если пятая строка, то запоминаем ее в переменную S
Next i
Close #MyFile 'Закрываем файл


А если надо считать все данные из файла, то:

Код

Dim MyFile 'Объявляем переменную для свободного файла
Dim S As String 'Переменная для хранения считанных данных

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
Open ("C:\TEST.txt") For Input As #MyFile 'Открываем файл TEST.TXT для чтения
S = Input$(LOG(1), 1) 'Считываем весь файл в переменную S
Close #MyFile 'Закрываем файл


Для записи в файл существуют операторы Print #Номер_файла, Данные и Write #Номер_файла, Данные. Отличает эти операторы только то, что Write записывает данные в кавычках, а Print без кавычек.

Ниже следующий код создаст на диске C:\ новый файл TEST.TXT и запишет в него две строки, первую без кавычек, а вторую в кавычках:

Код

Dim MyFile 'Объявляем переменную для свободного файла

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами
Open ("C:\TEST.txt") For Output As #MyFile 'Открываем файл TEST.TXT для записи
Print #MyFile, "Эта строка записана оператором Print, она без кавычек…"
Write #MyFile, "Эта строка записана оператором Write, она в кавычках…"
Close #MyFile 'Закрываем файл


Вот собственно и все. Как вы уже наверно поняли, для закрытия файла служит оператор Close #Номер_файла, при этом, #Номер_файла указывать не обязательно.

Статья немного сыровата, но для начинающих программистов будет полезна. В следющий раз я расскажу о работе с бинарными файлами.

VB - работа с файлами 2

В прошлый раз я рассказывал о работе с текстовыми файлами средствами Visual Basic (ver. 05'2003 "VB - работа с файлами"), я продолжу эту тему, но на этот раз речь пойдет о бинарных файлах.

Теория

Доступ к бинарным файлам, в отличии от текстовых, происходит к отдельному байту в нутрии любого файла.

Прежде чем начать работу с бинарным файлом, его надо открыть, делается это при помощи оператора Open:

Open ("имя_файла") For Binary As #Номер_файла

Считывание данных из бинарного файла производится оператором Get:

Get #Номер_файла, Байт, Переменная

Запись данных в бинарный файл производится оператором Put:

Put #Номер_файла, Байт, Переменная

Практика

Для примера создадим на диске C:\ новый файл mybf.txt, в который занесем данные из переменной usr:

Код

Dim MyFile
Dim usr As String

usr = "Hello!"
MyFile = FreeFile
Open ("C:\mybf.txt") For Binary As #MyFile


После выполнения этого кода на диске C:\ должен появится файл mybf.txt, открым который вы увидите строку "Hello!". Теперь, давайте, в операторе Put изменим 1 на 10:

Код

Dim MyFile
Dim usr As String

usr = "Hello!"
MyFile = FreeFile
Open ("C:\mybf.txt") For Binary As #MyFile
Put #MyFile, 10, usr
Close #MyFile


После этого, открыв файл mybf.txt, вы увидите нечто вроде этого "Щ Ђ Ё Hello!". Как вы видите, слово "Hello!" начинается с 10 символа, а поскольку в файле было 0 символов, то автоматически были добавлены еще символы в начале файла.
А теперь, давайте, из файла mybf.txt занесем 12 байт в переменную usr:

Код

Dim MyFile
Dim usr As String * 1

MyFile = FreeFile
Open ("C:\mybf.txt") For Binary As #MyFile
Get #MyFile, 12, usr
Close #MyFile
MsgBox usr


После выполнения этого кода, должно появится сообщение "l". Как вы видите, в коде, после объявления типа переменной usr стоит "*1", это значит, что переменная usr может иметь только один символ, попробуйте 1 изменить на 3, и в сообщение уже будет не "l", а "llo".

взято с журнала... smile


--------------------
Я родился в этом безумном мире - и Я сделаю всё чтобы в нём выжить!
PM MAIL ICQ   Вверх
cardinal
Дата 26.1.2005, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Модератор: Название темы должно отражать ее суть!


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.3645 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.