![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Паскаль и файлы.
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]Вы хотите чтобы Вам кто-нибудь дал готовую программу или у Вас какие-то алгоритмические сложности?