[DELPHI] N plików txt i memo

0

witam,

w katalogu, którego ścieżkę znam jest n plików (nazwy nieznane).txt . Chciałbym dodać jednocześnie zawartość wszystkich plików do memo, w taki sposób, by dane były wyświetlane jedne pod drugimi. Chciałbym połączyć wszystkie pliki w jedną całość. Czy memo to dobre rozwiązanie, zważywszy, że chciałbym później wydrukować połączone dane?

pozdrawiam

0

Każde rozwiązanie spełniające zadanie jest dobre :)
Odczytujesz po prostu listę plików w danym katalogu za pomocą FindFirst, FindNext do TStringList i po kolei ładujesz je do Memo.

Przykład użycia: FindFirst, FindNext

Ogólnie na forum sporo na ten temat znajdziesz.

Zacznij i zobaczymy co dalej :)

0

Łokej:) To tak troszeczkę na piechotę...(Repeat?), ale dzięki spróbuję.

0
czapka123 napisał(a)

Chciałbym połączyć wszystkie pliki w jedną całość. Czy memo to dobre rozwiązanie, zważywszy, że chciałbym później wydrukować połączone dane?
Dobre, bo zadziała, ale znacznie szybciej zrobić

copy /y /b *.txt wynik.txt

połączy wszystkie pliki .txt w bieżącym katalogu do pliku wynik.txt

0

Azarien:
Możesz wytłumaczyć to trochę jaśniej? To rozwiązanie znacząco ułatwiłoby mi zadanie.

0

odpalasz konsolę (start|uruchom|cmd.exe) i piszesz tam polecenia…
albo w Total Commanderze przechodzisz do tego katalogu i piszesz.

0

Ogólnie mam coś takiego...

 procedure TForm1.Button2Click(Sender: TObject);
var
 SrchRec: TSearchRec;
 FileAttrs: Integer;
 smug:string;
begin
form6.Show;
FileAttrs := faAnyFile;
  if FindFirst('C:\bla\blalala\\*.txt*', FileAttrs, SrchRec) = 0 then
   begin
   repeat
   smug:=SrchRec.name;


     form6.Memo1.Lines.loadfromfile('C:\bla\blalala\'+smug);

    until FindNext(srchrec) <> 0;
    FindClose(srchrec);


  end;
end;

dodaje mi zawartość tylko 1 pliku z katalogu (to przez Loadfromfile), a mam w katalogu n plików. Jak zrobić, by dodawać do memo zawartość plików po kolei, bez kasowania poprzedniej. Loadfromfile kasuje poprzedni wpis :/

proszę o poradę

pozdrawiam

0

Nie radzisz sobie z wyszukiwaniem to skorzystaj z gotowca, który zwroci listę plików - w
postaci TStrings. Zawsze możesz przejrzeć źródła i przerobić to sobie albo dostosować,
a wspomniany gotowiec jest tutaj: http://www.torry.net/vcl/filedrv/search/wdfindf.zip

0

Utwórz dodatkowy obiekt (np. typu TStringList), do którego będziesz wczytywać znalezione pliki i następnie dodawaj jego zawartość do Memo. Ten przykład powinien Ci wyjaśnić zasadę jak to zrobić

var SL: TStringList;
begin
  SL:= TStringList.Create;
  SL.LoadFromFile('C:\Plik1.txt');
  Memo1.Lines.AddStrings(SL);
  SL.LoadFromFile('C:\Plik2.txt');
  Memo1.Lines.AddStrings(SL);
  SL.Free;
end;
0

Dziękuję bardzo wszystkim za pomoc. Temat ogarnięty :)

pozdrawiam serdecznie

1 użytkowników online, w tym zalogowanych: 0, gości: 1