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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение из текстового файла с разделителями 
:(
    Опции темы
Дмитрий
Дата 23.7.2003, 06:47 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Имеется текстовый файл - несколько строк, в каждой строке 5 колонок разделенных #
Как считать в отдельные переменные каждый из столбцов например (Иванов # 40 лет # тел. 40-89-44)
Иванов надо считать в переменную ФИО, 40 лет в ВОЗРАСТ и т.д.
и так по каждой строке ??
  Вверх
Plamenk
Дата 23.7.2003, 08:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Такой команды, по-моему, нет. Но можно считывать строку, а потом с помощью InStr() искать символ "#" и вырезать часть строки (Left() или Right()). И так до тех пор пока InStr() не вернёт 0.
PM MAIL   Вверх
-Mikle-
Дата 24.7.2003, 06:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Я бы сделал так:
Код

.......
dim sTmp() as String
dim strExpr as String
strExpr="Иванов # 40 лет # тел. 40-89-44"
sTmp=Split(strExpr,"#")
'если не знаешь число колонок, то Ubound(sTmp) вернет тебе индекс последнего элемента
sFIO=sTmp(0)
sAge=sTmp(1)
sTel=sTmp(2)
........


И есть обратная функция:
Код

sStr=Join(sArray,"~")
в качестве разделителя - любой символ или последовательность символов, которые не встречаются в строке (чтоб потом, при разделении, не было ошибок)


Если что, пиши: [email protected]


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
Shekspir
Дата 26.7.2003, 07:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



wink.gif Все это слишком сложно.
Не проще ли воспользоваться стардантными функциями READ/WRITE

Открываем файл
Код
Open "c:\test.txt" for output as #1

Затем записываем в файл необходимые данные:
Код
Write #1,"Иванов","тел 123-23-45","......"

Затем всё это легко читается:
Код
Read #1,string1,string2,string3

В переменных String№ будут все записи.

--------------------
Убить Билла 1, 2, 95, 98, 98SE, 2000, ME, XP....
PM MAIL ICQ   Вверх
-Mikle-
Дата 26.7.2003, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

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



Цитата
Не проще ли воспользоваться стардантными функциями READ/WRITE

Было бы проще в случаях если данные в файл записывались этой же прогой или формат файла был типа: "Иванов","40 лет","тел. 40-89-44" , но формат: (Иванов # 40 лет # тел. 40-89-44) то есть с разделителем "#", поэтому READ не прочитает правильно. Хотя если Дмитрий сам создает файл, то эти функции идеальный вариант.
Код
WRITE #1, varStringType, varNumType, varDateTimeType, varBooleanType

запишет в файл строку вида:
"строковое значение", 0, #01/01/2003#, False
а оператор
Код
READ #1, varStringType, varNumType, varDateTimeType, varBooleanType

корректно все прочитает. adv/76.gif


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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