На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Название темы должно быть информативным !
Прежде чем задать вопрос, воспользуйтесь Поиском. и проверьте в FAQ (ЧАВО) Паскаля
Чтобы получить вразумительный ответ, подробно опишите проблему: что надо сделать, что не получается и номер ошибки (если есть), которую выводит компилятор.
Для вставки кода ваших программ используйте, пожалуйста, кнопку СODE=pas или выпадающий список СODE для других языков (подсветка синтаксиса).
[!] Как правильно задавать вопросы | Руководство по языку B.Pascal 7 & Objects/LR | Borland Pascal. Руководство пользователя
Модераторы: volvo877
  
> Readln/Writeln и UNIXовый End-Of-Line
    Hi многоуважаемый ALL,
    можно ли заставить ТР6 читать/писать построчно (readln/writeln) файл в UNIXовом формате, т.е. у которого признак конца строки - не chr(13)+chr(10), а просто chr(10)?
      Через ReadLn/WriteLn нельзя... Надо заменить на Read/Write...
        То бишь... WriteLn(F, 'Строчка') заменяешь на Write(F, 'Строчка'#10)
          А ReadLn на что заменять?
          Read (F, Char) замедляет прогу в 10-12 раз.
          А чтение блоками - очень усложняет задачу.
          Поставлю вопрос конкретнее.
          Есть большой файл, представляющий собой архив почты и, соответственно, состоящий из многих писем. На эти письма его и надо разрезать.
          Признак нового письма - ключевое слово ('Received') в начале строки.
          Файлы могут быть как в MSDOS, так и в UNIX-кодировке.
          Can anybody F1 me?
            а что сложного в чтении блоками? прочитать блок, заменить все CR на NULL - вот и готовая строка, остается только сканировать блок на нули и копировать в переменные.
            Если это сложно - можно просто после сканирования записать строки во временный файл с добавлением LF
              Для последнего случая, конечно же, во время, а не после :-)
                2 NOPIK: ...что заметно ускорит работу :)
                2 РусскийСашка: Читай болками и добавляй в строку. Как встретишь LF, строка готова. Затем остаток буфер копируешь в начало (буфера), запоминаешь позицию и в следующий раз из файла читаешь уже на остаток байт меньше :))))))))))
                  А зачем тогда дополнительное копирование? Не проще сразу в строку? Все равно ведь фрагменты складывать. А конкатенация явно быстрее вызова функции.
                    Всё может быть и быть всё может. Лишь одного не может быть: того, что точно быть, всё остальное может быть! :)))
                    1 пользователей читают эту тему (1 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0231 ]   [ 14 queries used ]   [ Generated: 20.05.24, 13:07 GMT ]