mam jedno pytanie odnosnie tego przykladu.
zagadnienie jest trywialne ale pytam bo z mojego punktu widzenia nie powinno dzialac... chyba;)

funkcja dzielaca plik na czesci nie odgrywa tu roli. chodzi o fragment kodu funkcji laczacej, wiec:
pod buttonem jest wywolanie owej funkcji i jako paramet przekazujemy katalog(nie sciezke do pliku) tylko katalog w ktorym sa pliki do polaczenia:

procedure TMainForm.btnConnectFileClick(Sender: TObject);
begin
  ConnectFile(DirListBox.Directory);
end;

zaraz po wejsciu do procedury ConnectFile jest kod ktory twozy plik wyjsciowy:

if not FileExists(ExtractFileDir(Dir) + ChangeFileExt(ExtractFileName(Dir), '')) then
    Output := TFileStream.Create(ExtractFileDir(Dir) + ChangeFileExt(ExtractFileName(Dir), ''), fmCreate)
  else Output := TFileStream.Create(ExtractFileDir(Dir) + ChangeFileExt(ExtractFileName(Dir), ''), fmOpenWrite);

i tu jest moje pytanie. jak to jest skladane ze soba skoro do funkcji wysylamy sciezke katalogu wiec:
ExtractFileDir(Dir) da nam wlsnie ta sciezke, ExtractFileName(Dir) zwroci pusty string.

dalej:

Input := TFileStream.Create(Dir + '\' + ExtractFileName(ChangeFileExt(DirListBox.Directory, '')) + IntToStr(i) + '.temp',

jeki jest sens wywolania ChangeFileExt(DirListBox.Directory, '')? skoro DirListBox.Directory to katalog a nie plik, i jaki sens ma ExtractFileName z argumentem katalogu a nie sciezki do pliku?