Дык исходные данные и не должны портиться, бо как лежат в др. файле.
типа так:
Код:
uses Classes;
var
sl : TStringList;
i : integer;
s : String;
begin
sl := TSTringList.Create;
sl.LoadFromFile('File1.txt');
s := sl.Text;
For i := 1 To Length(s) Do
If s[i] in ['a'..'z'] Then
s[i] := chr(ord('A') + ord(s[i]) - ord('a'));
sl.Add('');
sl.Add('Resultat:');
al.Add(s);
sl.SaveTofile('File2.txt');
sl.Free;
end;
тогда выведет в новый файл содержимое старого + измененные данные.
Ну а если говорить о твоем коде, то, наверное, должно быть как то так:
Код:
var
str_in, str_out : string;
function vvodstr : string;
var
fin : TextFile;
buf : String;
begin
AssignFile(fin,'File1.txt');
Reset(fin);
readln(fin,buf);
CloseFile(fin);
Result := buf;
end;
function zamena(s:string):string;
var
i : integer;
begin
Result := s;
for i:=1 to length(Result) do
Result[i]:=UpCase(Result[i]);
end;
procedure vivodres(str_old, str_new : string);
var
I : Integer;
fout : TextFile;
begin
AssignFile(fout,'File2.txt');
Rewrite(fout);
writeln(fout,'in out');
writeln(fout,'-- ---');
for i:=1 to length(str_old) do
writeln(fout,str_old[i]+' '+str_new[i]);
CloseFile(fout);
end;
begin
str_in := vvodstr;
str_out := zamena(str_in);
vivodres(str_in,str_out);
end.