Форум: "Основная";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];
ВнизПаскаль и файлы. Найти похожие ветки
← →
MasterA (2002-05-21 17:27) [0]Приветствую ВАС! Помогите. Сформировать текстовый файл Т2, на основе текстового файла Т1, так что бы каждая строчка содержала либо 30 литер(букв, знаков, цифр), кроме ";", либо заканчивалась ";" (точкой с запятой). В качестве Т1 можно использовать файл программы *.pas . Это все нужно на паскале. За ранее спасибо.
← →
Andrey007 (2002-05-21 17:34) [1]Вы хотите чтобы Вам кто-нибудь дал готовую программу или у Вас какие-то алгоритмические сложности?
← →
AFROLOV (2002-05-21 17:37) [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;
← →
Voldemar (2002-05-21 18:02) [3]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;
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.06.03;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.005 c