![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Work Group |
![]() ![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
не можите помочь с одной задачкой....делаю делаю..полная фигня получается...
задача заключается в том,что бы в результирующий файл переписать содержимое текстового файла, разбив строки,содержащие более n символов на несколько...то есть строки в файле должны содержать n символов |
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Цитата делаю делаю..полная фигня получается... Можно посмотреть, что именно ты делаешь? Как решаешь эту задачу? |
Work Group |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Ну, как знаешь... Тогда решай дальше...
Кстати, я уже решал подобную задачу, прямо на этом форуме, пользуйся поискам - найдешь. Даже в двух вариациях. |
Work Group |
![]() ![]()
Сообщение
#5
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
прога берёт текстовой файл,и делит строки на n-ое число символов за исключением последней,и переписывает всё в новый текстовой файл...
проблема в том,что если в строке 12 символов,а мы берём n равное 5, то будет получаться строка с 2-мя символами,а такое должно быть только в конце.. Код uses crt; var t:text; a:array[1..100]of string; t1,t2: string; k,n,i:integer; begin writeln ('введите путь к файлу'); readln (t1); assign(t,t1); reset(t); writeln ('введите длинну строк'); readln(n); while not eof(t) do begin inc(k); readln(t,a[k]); end; close(t); writeln ('введите путь к новому файлу'); readln (t2); assign(t,t2); rewrite(t); for i:=1 to k do begin while length(a[i])>n do begin writeln(t,copy(a[i],1,n)); delete(a[i],1,n); end; if length(a[i])>0 then writeln(t,a[i]); if length(a[i])<n then writeln(t,copy(a[i+1],1,n-length(a[i]))); delete(a[i+1],1,n-length(a[i])); end; close (t); end. проблемма в этих строчках Код if length(a[i])<n then writeln(t,copy(a[i+1],1,n-length(a[i]))); delete(a[i+1],1,n-length(a[i])); помогите пожайлуста |
volvo |
![]()
Сообщение
#6
|
Гость ![]() |
А что, просто пробежаться посимвольно (читаешь символ -> проверяешь его на #13, #10, если нет - то пишешь в выходной файл -> увеличиваешь счетчик записанных символов -> счетчик = N, тогда пишешь перевод строки и обнуляешь счетчик) - нельзя?
Твой вариант содержит слишком много недостатков: а если у меня в файле 101 строка, что делать будем? А если длина любой строки в файле больше 255 символов - что тогда? |
Work Group |
![]()
Сообщение
#7
|
Новичок ![]() Группа: Пользователи Сообщений: 10 Пол: Мужской Репутация: ![]() ![]() ![]() |
ну можно вот так
Код uses crt; var t:text; a:array[1..100]of string; t1,t2,g: string; k,n,j:word; i:integer; Begin //writeln ('ââåäèòå ïóòü ê ôàéëó'); //readln (t1); t1:='H:\t.txt'; assign(t,t1); reset(t); //writeln ('ââåäèòå äëèííó ñòðîê'); //readln(n); n:=4; k:=0; while not eof(t) do begin inc(k); readln(t,a[k]); end; close(t); //writeln ('ââåäèòå ïóòü ê íîâîìó ôàéëó'); //readln (t2); t2:='H:\t1.txt'; assign(t,t2); rewrite(t); for i:=1 to k do begin while length(a[i])>0 do begin g:=''; if length(a[i])<n then begin //g:=copy(a[i],1,length(a[i])); //g:=g+copy(a[i+1],1,n-length(a[i])); //delete(a[i+1],1,n-length(a[i])); //delete(a[i],1,length(a[i])); //writeln(t,g); end else begin g:=copy(a[i],1,n); delete(a[i],1,n); writeln(t,g); end; end; end; close (t); End. |
volvo |
![]()
Сообщение
#8
|
Гость ![]() |
Что "можно вот так"? Получить вылет программы? Считай, получил. А теперь переделай, чтоб вылета не было.
|
![]() ![]() |
![]() |
Текстовая версия | 23.06.2025 1:10 |