IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Текстовый файл
сообщение
Сообщение #1


Гость






??? ??? ??? :-[
1)  Имеется текстовый файл. Написать программу, которая создала бы новый файл, в котором строки были бы пронумерованы, начиная с 1.

2)  Имеется текстовый файл. Написать программу, которая создала бы новый файл, в котором каждая строка исходного файла читалась бы наоборот, т.е. 1-ый символ в исходной строке стал бы последним, 2-ой - предпоследним и т.д. Количество срок в файле произвольно.
[img][/img]
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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.


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 930
Пол: Мужской

Репутация: -  11  +


А что, коротко и ясно. А что до остального, так основная цель достигнута - мой вариант появился раньше.  Именно это и ставилось во главе угла   ;D Про модуль ты зря так сказал - имелось в виду, что программист догадается выпилить из исходника нужную функцию  ;)
ЗЫ а теперь попробуй решить эту же задачу, но используя нетипизованные файлы, а то наши проги соревнуются в разных весовых категориях.  ;)
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






СПАСИБО, только вот теперь у меня вопрос, а это вы мне какую задачу-то решили 1) или 2)? ???
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Четыре квадратика
****

Группа: Пользователи
Сообщений: 579
Пол: Мужской

Репутация: -  4  +


А это мы строки пронумеровали


--------------------
Закон добровольного труда Зимерги:
Люди всегда согласны сделать работу, когда необходимость в этом уже отпала
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





Группа: Пользователи
Сообщений: 8

Репутация: -  0  +


Цитата

СПАСИБО, только вот теперь у меня вопрос, а это вы мне какую задачу-то решили 1) или 2)? ???

А как это защищаться-то тогда будет???   :-/
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


;D Долго ржал над этим... (над первой версией, и над последним вопросом Анечкиsmile.gif)
Как только я увидел первую "программную версию" (в первые секунды), мне показалось, что это на Бэйсике написанно ;)
Решаюсь выдвинуть свою первую версию решения второй задачи  :-/
Код

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.


--------------------
На самом деле самого дела нет. В самой деятельности заключена самость дела и наоборот. Наоборот получим оборот на, таким образом перевернем образ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


dushik:
Код
s:string[255];
- можно было бы обойтись
Код
s:string

Код
j:integer;
- не вижу, где ты используешь!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Новичок
*

Группа: Пользователи
Сообщений: 49
Пол: Мужской

Репутация: -  0  +


Ну я не думаю что эта фигня - такая уж серьезная ошибка ;). J - я забыл удалить.
А s[255], мне почему-то показалось, что без этого я не смогу строку как массив символов использывать :/


--------------------
На самом деле самого дела нет. В самой деятельности заключена самость дела и наоборот. Наоборот получим оборот на, таким образом перевернем образ...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


...
*****

Группа: Пользователи
Сообщений: 1 347
Пол: Мужской

Репутация: -  3  +


;D ;) smile.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 




- Текстовая версия 20.11.2017 23:57
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"