Mam oto taki kod:
var
plikzrod1,plikzrod2,plikwyn: textfile;
lancuchzrod1,lancuchzrod2 :string;
begin
ShowMessage('Wybierz 2 różne pliki wejscia i jeden plik wyjscia');
if opendialog1.Execute
and opendialog2.Execute
and Savedialog1.Execute
and (MessageDlg('zapisz wynik w'+savedialog1.FileName,mtwarning,
[mbyes,mbno],0)=mryes) then
begin
AssignFile(plikzrod1,opendialog1.Filename);
assignFile(plikzrod2,opendialog2.Filename);
Assignfile(plikwyn,savedialog1.Filename);
RESET(plikzrod1);
reset(plikzrod2);
rewrite(plikwyn);
readln(plikzrod1,lancuchzrod1);
readln(plikzrod2,lancuchzrod2);
while
not Eof(Plikzrod1) or not Eof(Plikzrod2) do
begin
if (LancuchZrod1 < lancuchzrod2) then
begin
Writeln(Plikwyn,lancuchzrod1);
if not eof(Plikzrod1) then
Readln(plikzrod1,lancuchzrod1)
else lancuchzrod1:='zzzzzz';
end
else
begin
Writeln(plikwyn,lancuchZrod2);
if not eof(plikzrod2) then
Readln(plikzrod2,lancuchzrod2)
else lancuchzrod2:='zzzzzzz';
end;
end ;
if Eof(plikzrod1) then
writeln(plikwyn,lancuchzrod2);
if eof(plikzrod2) then
Writeln(plikwyn,lancuchzrod1);
closefile(plikzrod1);
closefile(plikzrod2);
closefile(plikwyn);
memo1.Lines.LoadFromFile(Savedialog1.FileName);
end
else
ShowMessage('Problem z plikiem');
end;
Program ten pobiera nazwy z dwóch plików, a w trzecim segreguje je alfabetycznie.
Niby wszystko jest w porządku, bo program uruchamia się normalnie, ale, jak wczytuję pliki to zawiesza się cały system. Sprawdzałem na Win98 i WinXp.