Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Паскаль и файлы.


MasterA ©   (2002-05-21 17:27:00) 

Приветствую ВАС! Помогите. Сформировать текстовый файл Т2, на основе текстового файла Т1, так что бы каждая строчка содержала либо 30 литер(букв, знаков, цифр), кроме ";", либо заканчивалась ";" (точкой с запятой). В качестве Т1 можно использовать файл программы *.pas . Это все нужно на паскале. За ранее спасибо.


Voldemar   (2002-05-21 18:02:00) [1]

MasterA © (21.05.02 17:27)
Если это будет реализоваться в среде делфи, лучше воспользоваться TMemoryStream - будет существенно быстрее. Примерно так:

var TSMS, TTMS: TMemorystream;
Pos: Integer;
Ch: char;
Str: string;
begin
TSMS:=TMemoryStream.Create;
TTMS:=TMemoryStream.Create;
try
TSMS.LoadFromFile("Filename1");
except Exit;
end;
TSMS.Position:=0;
for pos:=0 to TSMS.Size-1 do
begin
TSMS.ReadBuffer(ch,1);
if ((ch=";")or(Length(Str)>=30)) then
begin
Str:=Str+#13+#10;
TTMS.WriteBuffer(Str,Length(STR));
Str:="";
end
else Str:=Str+ch;
end;
TTMS.SaveToFile("Filename2");
TTMS.Free;
TSMS.Free;
end;


AFROLOV   (2002-05-21 17:37:00) [2]

Вот примерное решение, доделаешь сам:
var
F1, F2: TextFile;
Ch: Char;
count:integer;
begin
....
AssignFile(F1, Filename1);//в паскале assign
Reset(F1);
AssignFile(F2, Filename2);
Rewrite(F2);
count:=0;
while not Eof(F1) do
begin
Read(F1, Ch);
if ((ch=";") or (count>=30)) then
begin
writeln(f2,";");
end else
begin
Write(F2, Ch);
count:=count+1;
end;
end;
CloseFile(F1);
CloseFile(F2);

end;


Andrey007   (2002-05-21 17:34:00) [3]

Вы хотите чтобы Вам кто-нибудь дал готовую программу или у Вас какие-то алгоритмические сложности?


Наверх

Титульная страница Поиск, карта сайта Написать письмо