Помощь - Поиск - Пользователи - Календарь
Полная версия: Работа с массивом и текстовыми файлами.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
pt3
Здравствуйте! Подскажите пожалуйста, пару моментов по следующей задаче:

Разработать программу обработки текстовых файлов. Программа должна выполнить следующие действия: загрузить текст из заданного файла в массив строк, создать выходной файл, в котором строки идут в обратном порядке, организовать диалоговый цикл для многократного поиска в тексте заданного пользователем символа с выводом номера строки и номера символа в строке.

Вот что я сделал:
program dfr;
const
N=100;

var f,j:Text;
name,name1:string;
m: array [1..N] of string;
i: integer;

begin
writeln('Укажите txt-файл для работы(например: C:\name.txt)'); readln(name);
writeln('Имя файла:'); readln(name1);
assign(f,name);
assign(j,name1);
reset(f);i:=1;
rewrite(j);
while not EOF(f) and (i <= N) do
begin
read(f,m[i]);
write(m[i]);
write(j,m[i]);
inc(i)
end;
close(f);
close(j);
readln;
end.



Так вот, есть два вопроса:

1. Как из массива вывести символы в обратном направлении(в другой файл я смог записать, а вот чтобы буквы были в обратном направлении, не могу сделать).
2.
Цитата
организовать диалоговый цикл для многократного поиска в тексте заданного пользователем символа с выводом номера строки и номера символа в строке.
как сделать поиск, чтобы программа выводила номер строки и номер символа?

Заранее спасибо.
volvo
Цитата
в другой файл я смог записать, а вот чтобы буквы были в обратном направлении, не могу сделать
А тебе и не надо, чтобы буквы были в обратном направлении... Тебе надо записать массив "с хвоста", чтобы СТРОКИ расположились в порядке, противоположном начальному, например...

Было:
a1234
b2345
c3456

стало:
c3456
b2345
a1234
arhimag
По поводу второго вопроса:
если strings - массив строк, а n - количество строк.
теперь введем две цикловые переменные i,j и одну переменную буленовскую flag.

Теперь

[pascode]

flag:=false;
for i := 1 to n do begin
for j:= 1 to length(strings[i]) do
if strings[i,j]=ch then begin
flag:=true;
writeln('Строка:',i);
writeln('Символ:',j);
break;
end;
if flag then
break;
end;

[/pascode]

ну а теперь делаешь цикл. и все

 ! 
Я вот не пойму никак, ты специально ГАДИШЬ всюду, или как? Чего, про изменения тегов ты тоже, конечно, ничего не знал? А новости прочесть - "не царское это дело", правда? Есть же модераторы, это ж слуги твои... dry.gif Приберут за тобой...

Больше предупреждать не буду... Один пост с нарушением хоть какого-нибудь (ЛЮБОГО) Правила Форума - будешь забанен вместе со своей подсеткой по IP... Надоел ты уже...

Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.