Текстовый файл |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
Текстовый файл |
Anne'ечка |
Сообщение
#1
|
Гость |
??? ??? ??? :-[
1) Имеется текстовый файл. Написать программу, которая создала бы новый файл, в котором строки были бы пронумерованы, начиная с 1. 2) Имеется текстовый файл. Написать программу, которая создала бы новый файл, в котором каждая строка исходного файла читалась бы наоборот, т.е. 1-ый символ в исходной строке стал бы последним, 2-ой - предпоследним и т.д. Количество срок в файле произвольно. [img][/img] |
SKVOZNJAK |
Сообщение
#2
|
Профи Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
Блин, при открытии *.asc в ворде так ломаются строки.... Прямо свинство какое-то. Решено, как только подрасчищу дисковое пространство, устанавливаю на винду линуксовский офис ;D
Код uses stringozui; var Q2,W2: LONGINT; Q3,W3,E3: BYTE; Q8,W8,E8,R8: WORD; Q:ARRAY[1..1000] OF BYTE; W:ARRAY[1..15000] OF BYTE; Q7,W7: FILE; LABEL 1,2,3,100; BEGIN ASSIGN(Q7,'PERUM7.TXT'); ASSIGN(W7,'PERUM8.TXT'); RESET(Q7,1); REWRITE(W7,1); Q2:=FILESIZE(Q7); W2:=0; {НОМЕР СТРОКИ} 1: IF Q2=0 THEN GOTO 100 ELSE BEGIN IF Q2>=1000 THEN BEGIN Q2:=Q2-1000; Q8:=1000; END; IF Q2<1000 THEN BEGIN Q8:=Q2; Q2:=0; END; END; BLOCKREAD(Q7,Q,Q8); W8:=1; R8:=1; 2: INC(W2); Q3:=TRINGOL(W2); W3:=1; FOR W8:=W8 TO W8+Q3 DO BEGIN {ЗАПИСЬ НОМЕРА СТРОКИ} W[W8]:=TRINGOL10[W3]; INC(W3); END; W[W8]:=32; INC(W8); 3: IF Q[R8]=10 THEN INC(R8); IF Q[R8]=13 THEN BEGIN {ЕСЛИ ДОШЛИ ДО МАРКЕРА ЕОЛ} W[W8]:=13; INC(W8); W[W8]:=10; INC(W8); INC(R8);INC(R8); GOTO 2; END; W[W8]:=Q[R8]; INC(R8); INC(W8); IF R8<Q8 THEN GOTO 3; BLOCKWRITE(W7,W,W8); GOTO 1; 100: CLOSE(Q7); CLOSE(W7); END. Непричёсано малость, но вроде работает. Модуль СТРИНГОЖУЙ можно скачать с http://stiratel7.narod.ru/1/susnjak.zip |
trminator |
Сообщение
#3
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
Вот мой вариант... а то побьют ведь ее за goto +) да и модуль СТРИНГОЖУЙ вряд ли входит в универскую программу +)
Код program strings01; var s: string; i: integer; in_f, out_f : text; begin write('Enter filename to read > '); readLn(s); assign(in_f,s); reset(in_f); write('Enter filename to write > '); readLn(s); assign(out_f,s); rewrite(out_f); i:=1; while not EOF(in_f) do begin readLn(in_f,s); writeLn(out_f, i:5,' ', s); inc(i) end; close(in_f); close(out_f); end. -------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
SKVOZNJAK |
Сообщение
#4
|
Профи Группа: Пользователи Сообщений: 930 Пол: Мужской Репутация: 11 |
А что, коротко и ясно. А что до остального, так основная цель достигнута - мой вариант появился раньше. Именно это и ставилось во главе угла ;D Про модуль ты зря так сказал - имелось в виду, что программист догадается выпилить из исходника нужную функцию ;)
ЗЫ а теперь попробуй решить эту же задачу, но используя нетипизованные файлы, а то наши проги соревнуются в разных весовых категориях. ;) |
Anne'ечка |
Сообщение
#5
|
Гость |
СПАСИБО, только вот теперь у меня вопрос, а это вы мне какую задачу-то решили 1) или 2)? ???
|
trminator |
Сообщение
#6
|
Четыре квадратика Группа: Пользователи Сообщений: 579 Пол: Мужской Репутация: 4 |
А это мы строки пронумеровали
-------------------- Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала |
error_404 |
Сообщение
#7
|
Группа: Пользователи Сообщений: 8 Репутация: 0 |
Цитата СПАСИБО, только вот теперь у меня вопрос, а это вы мне какую задачу-то решили 1) или 2)? ??? А как это защищаться-то тогда будет??? :-/ |
dushik |
Сообщение
#8
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Мужской Репутация: 0 |
;D Долго ржал над этим... (над первой версией, и над последним вопросом Анечки)
Как только я увидел первую "программную версию" (в первые секунды), мне показалось, что это на Бэйсике написанно ;) Решаюсь выдвинуть свою первую версию решения второй задачи :-/ Код uses crt; const name='name.txt'; name1='name1.txt'; var f,f1 :text; i,j :integer; s :string[255]; ch :char; begin assign(f,name); assign(f1,name1); reset(f); rewrite(f1); while not eof(f) do begin readln(f,s); for i:=length(s) downto 1 do begin write(f1,s[i]); end; writeln(f1); end; close(f); close(f1); readln; end. -------------------- На самом деле самого дела нет. В самой деятельности заключена самость дела и наоборот. Наоборот получим оборот на, таким образом перевернем образ...
|
AlaRic |
Сообщение
#9
|
... Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: 3 |
dushik:
Код s:string[255]; - можно было бы обойтись Код s:string Код j:integer; - не вижу, где ты используешь! |
dushik |
Сообщение
#10
|
Новичок Группа: Пользователи Сообщений: 49 Пол: Мужской Репутация: 0 |
Ну я не думаю что эта фигня - такая уж серьезная ошибка ;). J - я забыл удалить.
А s[255], мне почему-то показалось, что без этого я не смогу строку как массив символов использывать :/ -------------------- На самом деле самого дела нет. В самой деятельности заключена самость дела и наоборот. Наоборот получим оборот на, таким образом перевернем образ...
|
AlaRic |
Сообщение
#11
|
... Группа: Пользователи Сообщений: 1 347 Пол: Мужской Репутация: 3 |
;D ;)
|
Текстовая версия | 4.10.2024 12:10 |