у меня не работает программа.вы не поможете?? задание такое: дан внешний текстовый файл "book.txt" Написать программу, которая, игнорируя исходное деление этого файла на строки, переформатирует его, разбивая на строки так, чтобы каждая строка оканчивалась точкой либо содержала ровно 60 литер, если среди них нет точки. я сделала так: создала вспомогательный файл "helpbook.txt", в который записала все строки из "book" в одну(это работает)и дальше пытаюсь форматировать уже эту одну строку...но вот это-то и не работает.
Здравствуйте, Julka! Попробуй ввести другой счетчик, скажем j, который отсчитывает кол-во символов до 60. Встречая точку обнуляй как его так и s1, копируя при этом полученную строку в новый файл. Если не понятно, позвони. Рядом живём :) Ответ отправлен: 12.12.2002, 12:30 Отправитель: Lexus Отвечает Sensey
Здравствуйте, Julka! Естественно у тебя не получится, так как строка в Паскале ограничена до 255 символов... Держи правильный вариант. Если непонятно - пиши.
Приложение: Ответ отправлен: 12.12.2002, 12:53 Отправитель: Sensey Отвечает Vadim
Доброе время суток, Julka! А если файл будет больше, чем позволяет вместить одна строка (255 байт)? Предлагаю несколько другой способ (см. приложение). Загнать файл в одну строку можно с помощью типа PChar (до 65535 байтов). Или читать построчно из исходного файла, с помощью ReadLn, а записывать не с помощью WriteLn, а с помощью Write. Тогда все запишется в одну строку. Но опять-же, размеры получившейся строки . . . :)
Приложение: Ответ отправлен: 15.12.2002, 08:09 Отправитель: Vadim Отвечает Pinman
Здравствуйте, Julka! Ошибка в том, что ты используешь ReadLn для чтения информации из вспомогательного файла. Эта процедура читает информацию до символа окончания строки, а переменные String не могут собержать более 255 символов . Используй Read. Ответ отправлен: 12.12.2002, 14:32 Отправитель: Pinman Отвечает Артём Шегеда
Здравствуйте, Julka!
У Sensey'я что-то не получилось с кодировкой - я подправлю...
Приложение: Ответ отправлен: 12.12.2002, 13:07 Отправитель: Артём Шегеда Отвечает X-RayMan
Доброе время суток, Julka! В том-то и проблема, что ты все строки в одну загоняешь - ограничение по длине строки 255 символов. Поэтому лучше сичтывать посимвольно. См. приложение.
Приложение: Ответ отправлен: 14.12.2002, 22:13 Отправитель: X-RayMan Отвечает Tancho
Здравствуйте, Julka! мне кажеться что ты опорочила своя прогу изначале.Ты не читала что в Pascal-е переменная стринг не может превишать длину 255 байтов? Если читал то что значить - while not eof(f)do begin readln(f,st); s1:=s1+st+' '; end; write(z,s1); close(f); или твой файл не будеть длиной больше 255 символов? Если ты хочешь експертов написать такая прога то ето другая вешт!
Ответ отправлен: 14.12.2002, 17:22 Отправитель: Tancho Отвечает portos
Здравствуйте, Julka! ты читаешь информацию из вспомагательного файла в строку, куда она не влазит - это раз. во вторых, после вырезания подстроки из строки меняется ее размер и соответсвенно нужно начинать цикл сначала. лучше читай из файла символы в переменную char, если точка или прочитала 60 символов после последнего перевода строки тогда writeln(g,c(твоя символьная переменная)); k:=0 (k - счетчик записаный в строку символов) если нет тогда write(g,c); k:=k+1; при этом кстати промежуточный файл не нужен, просто из исходного читаеть тоже по символу и протускаешь те, что равны eoln Ответ отправлен: 14.12.2002, 13:49 Отправитель: portos
Форма отправки вопроса
Внимание!
Форма может работать некорректно в почтовых программах "Microsoft Outlook"
и "Microsoft Outlook Express". В программе The Bat!
подобные формы не работают вообще!
После нажатия на кнопку "Отправить", будет открыто второе окно. Заметьте,
что в некоторых браузерах могут стоять запреты на открытие других
окон, а также "чрезмерное" кэширование данных,
при этом факт отправки Вашего вопроса стоит под сомнением.
Мы рекомендуем открывать рассылку в программе Internet
Explorer 5.0+ или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.