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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа c ASCII фаилами, Работа с текстовыми файлами 
:(
    Опции темы
GorbunovDiman
Дата 5.3.2008, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



 smile   У меня фрагмент кода не работает! Вот он:
Код

                Do Until EOF(1)
                      Line Input #5,Te
                      AllText= AllText & Te
                Loop
Но ВБ выдаёт ошибку: что путь указан не верно или невернай номер
Хотя все верно, правда размер файла 200кб!
Что это такое?    smile 
PM MAIL   Вверх
Akina
Дата 5.3.2008, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



1) Используйте тег "Код".
2) В какой именно строке выдается ошибка?
3) где код открытия файла и определения переменных?


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

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


Шустрый
*


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

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



 smile  Переписываю код:

                                   Dim Pats ,AllText,Te AS String
                                   'Pats=Путь к файлу
                                   Open Pats for input as #5
                                   Do Until EOF(1)
                                         Line Input #5,Te  'Ошибку он выдаёт имено в этой строке
                                         AllText= AllText & Te
                                   Loop

 smile  Но у меня этот же код работал ранее! Прада размер считываемого файла был нетакой    
большой!
PM MAIL   Вверх
Akina
Дата 5.3.2008, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Теперь пишем по-человечески...

Код

Dim Path As String, AllText As String, Buffer As String, Handle As Long
Path = "C:\Folder\Filename.ext"
Handle = FreeFile
Open Path For Input As #Handle
AllText = ""
Do Until EOF(Handle)
  Line Input #Handle, Buffer
  AllText = AllText & Buffer
Loop
Close #Handle

Запускаем. Если возникает ошибка - указываем ее номер.


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

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


Шустрый
*


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

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



 smile Спасибо ! Но он у меня считывает толко начало файла!

PM MAIL   Вверх
Akina
Дата 7.3.2008, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Создал тест-файл размером в 2 мегабайта (100 тыс. строк). Прогнал на приведенном коде. Все содержимое считано без потерь.

Вывод - код правильный. Ищите проблемы в другом месте.

Добавлено через 5 минут и 33 секунды
В крайнем случае изучите и используйте современные методы работы с текстовыми файлами.
Код

Dim FSO as Object
Dim AllText As String
Set FSO = CreateObject("Scripting.FileSystemObject")
AllText = Replace(FSO.OpenTextFile("C:\Folder\Filename.ext", 1, False).ReadAll,vbCrLf,"")




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

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


Шустрый
*


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

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



 smile Огроное спасибо!

PM MAIL   Вверх
JusTalionis
Дата 8.3.2008, 11:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GorbunovDiman @  5.3.2008,  12:16 Найти цитируемый пост)
 
Код
                                  Dim Pats ,AllText,Te AS String
                                   'Pats=Путь к файлу
                                   Open Pats for input as #5
                                   Do Until EOF(1)
                                         Line Input #5,Te  'Ошибку он выдаёт имено в этой строке
                                         AllText= AllText & Te
                                   Loop 
 

Ты открываешь файл под номером 5. А достижение конца какого файла проверяешь? - номера 1?! В этом и ошибка. Должно быть EOF(5).

PM MAIL   Вверх
GorbunovDiman
Дата 10.3.2008, 15:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



А какми кодами обазначается конец файла текста? Вот ентер например 13 и 10 , а конец файла тогда каким? smile 
PM MAIL   Вверх
Naghual
Дата 10.3.2008, 15:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1893
Регистрация: 15.5.2004
Где: Украина, Днепр

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



А конец файла обозначается его концом!   smile 


--------------------
Я желаю всем Счастья!
PM ICQ Skype   Вверх
JusTalionis
Дата 10.3.2008, 18:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(GorbunovDiman @  10.3.2008,  15:12 Найти цитируемый пост)
а конец файла тогда каким?
 Вообще-то есть такой код, означающий конец файла: 26 (1Ah), но многие функции им не пользуются, а определяют конец файла исходя, например, из его длины. Это я к слову, раз уж спрошено.

Это не имеет отношения к аргументу функции EOF.  Аргументом функции EOF является файловый номер, то есть то самое число, под которым открыт файл. Это число для функций проги выполняет роль имени файла. 

Прояснил тебе суть?

PM MAIL   Вверх
Akina
Дата 10.3.2008, 21:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


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


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

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



Цитата(JusTalionis @  10.3.2008,  19:48 Найти цитируемый пост)
Вообще-то есть такой код, означающий конец файла: 26 (1Ah), но многие функции им не пользуются, а определяют конец файла исходя, например, из его длины.

Символ CHR(26) одначает конец ТЕКСТОВОГО файла. И абсолютно все правильно написанные программы, работающие именно с текстовыми файлами (в т.ч. внешние утилиты командной строки операционной системы) правильно его обрабатывают.



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

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


Опытный
**


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

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



Гммм... Поскольку в жизни мне приходится иметь дело не только с правильно написанными программами, я замечал, что с этим кодом всегда не исключены какие-нибудь глюки... Без явной необходимости предпочитаю им не пользоваться...

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

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

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

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

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


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

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


 




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


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

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