WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  Pascal
  Readln/Writeln и UNIXовый End-Of-Line

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   Readln/Writeln и UNIXовый End-Of-Line
rusalex опубликован 18-01-2002 21:01 MSK   Click Here to See the Profile for rusalex   Click Here to Email rusalex  
Hi многоуважаемый ALL,
можно ли заставить ТР6 читать/писать построчно (readln/writeln) файл в UNIXовом формате, т.е. у которого признак конца строки - не chr(13)+chr(10), а просто chr(10)?
NOPIK опубликован 19-01-2002 05:21 MSK     Click Here to See the Profile for NOPIK  Click Here to Email NOPIK     
Через ReadLn/WriteLn нельзя... Надо заменить на Read/Write...
7in опубликован 19-01-2002 23:37 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
То бишь... WriteLn(F, 'Строчка') заменяешь на Write(F, 'Строчка'#10)
rusalex опубликован 21-01-2002 13:54 MSK     Click Here to See the Profile for rusalex  Click Here to Email rusalex     
А ReadLn на что заменять?
Read (F, Char) замедляет прогу в 10-12 раз.
А чтение блоками - очень усложняет задачу.

Поставлю вопрос конкретнее.
Есть большой файл, представляющий собой архив почты и, соответственно, состоящий из многих писем. На эти письма его и надо разрезать.
Признак нового письма - ключевое слово ('Received') в начале строки.
Файлы могут быть как в MSDOS, так и в UNIX-кодировке.
Can anybody F1 me?

NOPIK опубликован 21-01-2002 19:59 MSK     Click Here to See the Profile for NOPIK  Click Here to Email NOPIK     
а что сложного в чтении блоками? прочитать блок, заменить все CR на NULL - вот и готовая строка, остается только сканировать блок на нули и копировать в переменные.
Если это сложно - можно просто после сканирования записать строки во временный файл с добавлением LF
NOPIK опубликован 21-01-2002 20:00 MSK     Click Here to See the Profile for NOPIK  Click Here to Email NOPIK     
Для последнего случая, конечно же, во время, а не после :-)
7in опубликован 22-01-2002 23:51 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
2 NOPIK: ...что заметно ускорит работу :)
2 РусскийСашка: Читай болками и добавляй в строку. Как встретишь LF, строка готова. Затем остаток буфер копируешь в начало (буфера), запоминаешь позицию и в следующий раз из файла читаешь уже на остаток байт меньше :))))))))))
NOPIK опубликован 23-01-2002 02:02 MSK     Click Here to See the Profile for NOPIK  Click Here to Email NOPIK     
А зачем тогда дополнительное копирование? Не проще сразу в строку? Все равно ведь фрагменты складывать. А конкатенация явно быстрее вызова функции.
7in опубликован 23-01-2002 23:46 MSK     Click Here to See the Profile for 7in  Click Here to Email 7in     
Всё может быть и быть всё может. Лишь одного не может быть: того, что точно быть, всё остальное может быть! :)))

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.