Помощь - Поиск - Пользователи - Календарь
Полная версия: Задача на ФАЙЛЫ
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Ostin
компонентами текстового файла являются символ, образующие наборы строк.
Организовать следующие процедуры работы с файлом:
-добавление информации в фаил
-просмотр всего файла
-СОРТИРОВКА СТРОК ФАЙЛА В АЛФАВИТНОМ ПОРЯДКЕ {самое важно и на мой взгляд сложно, как реализовать это?}
-очистка файла
Действия выполняются в произвольном порядке, по выбору пользователя.

помогите пожалуйста с рещение задачи (особено с 3 пунктом)! зарание большое спасибО!
volvo
Послушай, Ostin !!!

Ты что, издеваешься? Сколько можно задавать вопросы, которые уже обсосаны просто ДО ПРЕДЕЛА на этом форуме? Ну КАКАЯ может быть сложность с добавлением информации в ТЕКСТОВЫЙ файл (Если ты, конечно, соизволил прочесть тему "FAQ: Файлы")? А если не соизволил - то подними глаза наверх, и прочти, НАКОНЕЦ, что написано в рамочке!

Что может быть непонятно в просмотре текстового же файла? Ты хотя бы пытался?

Что с сортировкой? Тема "FAQ: Методы сортировок" тебе что, недоступна? Или "не царское это дело"? Чего читать самому, когда тут могут все готовое выложить?

(только вот не надо говорить, что все, что в FAQ-е сортирует только Integer-ы, ладно? Меняешь тип и работаешь со строками...)

P.S.
Цитата
компонентами текстового файла являются символ, образующие наборы строк.
Это у тебя что, бред? Какие компоненты в текстовом файле? Это, позволь тебе заметить, НЕ типизированный файл, у которого могут быть какие-то компоненты. Текстовый файл он и есть текстовый, и не надо его мешать с File Of Char...
Ostin
а дайте мне пожалуйста ссылку!) а то эти руки)))) замучили меня!))))
Анна
FAQ: Файлы
klem4
Цитата
-СОРТИРОВКА СТРОК ФАЙЛА В АЛФАВИТНОМ ПОРЯДКЕ {самое важно и на мой взгляд сложно, как



читаешь все строки из файла в массив, соритруешь массив, перезаписвыаешь обратно в файл.
попробуй действительно почитать FAQ и восопльзоваться поиском.

ps флуд удален.
Ostin
uses crt;
var
f,f1:text;
ch:char;
st:array [1..15] of string;
tr,kl:string;
min,max,k,a,i,p,b:byte;
{$i-}

procedure okno;
begin
textbackground(0);
clrscr;
textbackground(1);
window(13,6,75,25);
clrscr;
end;

procedure save;
begin
write('vvedite imia faila:');
readln(asd);
assign(f, asd);
rewrite(f);
if ioresult<>0 then
write('fail ne naiden')
else begin
for p:=1 to i do
begin
writeln(f, st[p]);
end;
close(F);
write('fail uspeshno sohranen');
end;
readln;
end;

procedure ydal;
begin
write('vvedite imia faila:');
readln(asd);
write('udalit fail',asd,'? (Y)\N');
ch:=readkey;
if (ch='y')or(ch='Y') then
begin
Assign(f, asd);
reset (f);
if ioresult<>0 then
begin
clrscr;
write('fail ne naiden');
end
else begin close(f);
erase(f);
clrscr;textcolor(15);
write('fail udalen!!!');
end;
end;
readln;
end;

procedure dobav;
begin
if i<=15 then
begin
okno;
write('vvedite imia faila:');
readln(asd);
textbackground(1);
window(13,6,75,20);
clrscr;
i:=i+1;
readln(st[i]);
Assign(f, 'q');
append(f);
if ioresult<>0 then
begin okno;
write('fail ne naiden');
end
else begin
writeln(f, st[i]);
close(F);
okno;
write('fail uspeshno sohranen');
end;
readln;
end;
end;

procedure open;
begin
okno;
write('vvedite imia faila:');
readln(asd);
assign(f, 'q');
reset(f);
if ioresult<>0 then
begin
write('fail ne naiden');
end;
textbackground(1);
window(13,6,75,20);
clrscr;
for p:= 1 to i do
begin
readln(f,st[p]);
writeln(st[p],' ');
end;
readln;
close(f);
end;

procedure as;
begin
okno;
write('vvedite imia faila:');
readln(asd);
assign(f, asd);
append(f);
assign(f1,'w' );
rewrite(f1);
if ioresult<>0 then
begin
write('fail ne naiden');
end;
textbackground(1);
window(13,6,75,20);
clrscr;
writeln('stroka dlia ydalenia');
max:=i;
readln(p);
for i:=1 to max do
begin
if i<>p then
writeln(f1,st[i]);
end;
close(f);
close(f1);
asd:='w';
assign(f,asd);
reset(f);
p:=max-1;
for i:= 1 to p do
begin
readln(f,st[i]);
writeln(st[i],' ');
end;
readln;
close(f);
end;


procedure stroka;
begin
okno;
write('vvedite imia faila:');
readln(asd);
assign(f, asd);
reset(f);
if ioresult<>0 then
begin
write('fail ne naiden');
end;
for p:=1 to i do
begin
a:=length(st[p]);
if p=1 then
begin
tr:=st[p];
kl:=st[p];
min:=a;
max:=a;
end;
if a>=max then
begin
max:=a;
tr:=st[p];
end;
if a<=min then
begin
min:=a;
kl:=st[p];
end;
end;
writeln('samaia dlinnaia stroka ',tr);
writeln('samaia korotkaia stroka ',kl);
readln;
end;

begin
okno;
write('vvedite stroku ');
i:=1;
readln(st[i]);
save;
repeat
okno;
ch:=readkey;
if ch=#49 then
open;
if ch=#50 then
dobav;
if ch=#51 then
ydal;
if ch=#52 then
stroka;
if ch=#53 then
as;
until ch=#27;
end.

вот что вышло почти моими усилиями))) пот имено тот 3 пункт ну не как он не катит((((( помогите а я вот тут не много догнать в этом тектсте не могу где редактирование файла!? что-то не работает((( помогите пиз!
Ostin
а еще не большой вопрос не в тему где можно найти список аски таблицы (коды клавиш) и еще нам препод рассказал история как при атестации института раз в 4 года при проверке астаточных знаний студент с 5 курса назвал таблица ASCII аск2 таблица



все нашол!) smile.gif

СОРТИРОВКА СТРОК ФАЙЛА В АЛФАВИТНОМ ПОРЯДКЕ (помогите мне с этим пожалуйста, умоляю просто)
Ostin
народ! ну пожалуйста помогите мне с этой сортировкой!!! пиззззззззззззззз!!!!!!!!!!!!!!!!!!!!!!!!!!!
Bokul
Не флуди mad.gif , этим ты ничего хорошого не добьёшься. no1.gif

Цитата
СОРТИРОВКА СТРОК ФАЙЛА В АЛФАВИТНОМ ПОРЯДКЕ {самое важно и на мой взгляд сложно, как реализовать это?}


Читаешь файл в одномерный массив строк, сортируешь его любым методом сортировок FAQ , при етом надо использовать функцию сравнения строк,
(она снизу wink.gif ), и наконец, перезаписываешь файл и записываеш в него массив. wink.gif yes2.gif


Функция возвращает
1 - если первая строка должна стоять перед второй.
2 - если строки одинаковые.
3 - если первая строка должна стоять после второй.
Код

function alp(s1,s2:string):byte;
var i,size1,size2,t1,t2:byte;
begin
size1:=length(s1);
size2:=length(s2);
for i:=1 to size1 do
    begin
         t1:=ord(s1[i]);
         t2:=ord(s2[i]);
         if t1 <> t2 then
            if t1 < t2 then
               begin
                    alp:=1;
                    exit;
               end
                  else
                      begin
                           alp:=3;
                           exit;
                      end;
         if (i=size2) and (i<>size1) then
            begin
                 alp:=3;
                 exit;
            end;
    end;
alp:=2;
end;

Nkt
Помогите решить задачу на Паскале. Условие: в текстовом фале есть несколько строк подобн
:
ac11de
ddf50f5
fd1d4g7


ответ должен быть записан в тот же файл в виде acde - 11
ddff - 55
fddg - 12;
короче буквы сначало написать а потом сумму чисел встречающихся в строке.


Помогите решить plz
Lapp
А с каких пор 1+1=11 ? smile.gif

 ! 
Тему закрываю - хватит задавать вопросы в чужие темы. Открывай свою.

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