Jak wyszukać w plikach na dysku...

0

Jak wyszukać wewnątrz wszystkich plików na danym dysku ciąg znaków "allefbdrll" ??
Jak program znajdzie plik w którym istnieje taki ciąg znaków to ma wyświetlić wiadomość z pytaniem o usunięcie tego pliku. Gdy użytkownik wybierze przycisk "tak" to plik ma być usunięty. Gdy "nie" to procedura szukania ma "iść" dalej tzn. zostać ponowiona od miejsca gdzie program skończył.
POMOCY--Pracuję w Delphi

Pozdrawiam
naszy@poczta.fm

0

Więcej nie mogłeś sobie zażyczyć?
Cały program mam napisać? :D
Poszukaj w pomocy czegoś takiego jak FindFirst. Dalej dojdziesz.

Jak to pisze pq: Po pierwsze naciśnij F1 ;) --Jest jeszcze jeden błąd ... :)

0

No to juz nie wiem...to jest bardzo pilne.... ;(

Może już nikomu nie będzie przeszkadzać...gdy nieco uproszczę:

Jak wyszukać wewnątrz wszystkich plików na danym dysku ciąg znaków "allefbdrll" ??
Jak program znajdzie plik w którym istnieje taki ciąg znaków to ma dopisać jego nazwę do ListView. Gdy to zrobi to procedura szukania ma "iść" dalej tzn. zostać ponowiona od miejsca gdzie program skończył.
POMOCY...błagam
nie mam na tyle czasu aby pracować z pomocą :( chociaż zgadzam się z twierdzeniem pq :)

--Pracuję w Delphi

Pozdrawiam
naszy@poczta.fm

0

Wpisujesz najpierw [tzn. korzystasz z funckji co to zrobi za ciebie] wszytskie pliki na dysku do np. TStringList, a nastepnie dla kazdej z pozycji TStringList'a otwierasz plik i przeszukujesz go jesli dany ciag zostanie znaleziony wtedy ListBox1.Items.Add... Meta szukania w pliku to moze hmmm.... laduj 1kb do stringa i sprawdzaj funkcja Pos moze by sie tak dalo :)

procedure Pliki;
var
n: Integer;
begin
Lista:=ZnajdzPlikiNaDysku;
for n:=0 to Lista.Count-1 do
begin
if OtworzPlikIZobaczCzyJestCiag(Lista.Strings[n]) then ListBox1.Items.Add(Lista.Strings[n]);
end;
end;

gdzie:
Lista - TStringList
ZnajdzPlikiNaDysku - funkcja zwracajaca TStringList, jak poszukasz to znajdziesz taka na forum byla nieraz [nazywa sie FindIt, lub FindIt wchodzi w jej sklad :)]
OtworzPlikIZobaczCzyJestCiag - funkcja zwraca True jak znajdzie dany ciag, ta funkcje jakos bys se musia rozpisac--sys:&gt logout....

0

Należy wrzucić poniższą funkcję oraz wstawić komponent TMemo.

type
public
procedure ZnajdzPlik(Sciezka,NazwaPliku:String);
end;

procedure TForm1.ZnajdzPlik(Sciezka,NazwaPliku:String);
var

FSearchRec,DSearchRec:TSearchRec;
FindResult:integer;

function GetDirectoryName(Dir:String):String;
begin
if Dir[Length(Dir)]&lt&gt'\' then
Result:=dir+'\'
else
Result:=Dir;
end;

function IsDirNotation(AdirName:String):Boolean;
begin
Result:=(AdirName='.') or (AdirName='..');
end;

begin
Sciezka:=GetDirectoryName(Sciezka);
FindResult:=FindFirst(Sciezka+NazwaPliku,faAnyFile+faHidden+faSysFile+faReadOnly,FSearchRec);
try
while FindResult = 0 do
begin
//tutaj otwórz plik, i włącz przeszukiwanie znak po znaku (nie jest to najszybsza metoda ale nie mam teraz czasu pisać jak to zrobić szybciej)
Memo1.Lines.Add(Sciezka+FsearchRec.Name);
FindResult:=FindNext(FSearchRec);
end;

FindResult:=FindFirst(Sciezka+'.',faDirectory,DSearchRec);
while FindResult=0 do
begin
if ((DSearchRec.Attr and faDirectory)=faDirectory) and not IsDirNOtation(DSearchRec.Name) then
ZnajdzPlik(Sciezka+DSearchRec.Name,NazwaPliku);
FindResult:=FindNext(DSearchRec);
end;
finally
FindClose(FSearchRec);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
ZnajdzPlik('c:\','*.exe');
end;
--Jest jeszcze jeden błąd ... :)

0

Hmm...też o tym myślałem...ale chodzi mi kod ...heh może coś wykombinujemy razem jak mi pomożesz :-)

no to jeszcze uprościmy sprawę :-)

Jak wyszukać wewnątrz wszystkich plików na danym dysku ciąg naków "alledbdrll" ??
Jak program znajdzie plik w którym istnieje taki ciąg znaków to ma wyświetlić komunikat:

(...)
if Application.MessageBox('Znaleziono plik', 'X', Mb_Ok+Mb_IconInformation)=IDOk then (...)

Gdy to zrobi i użytkownik naciśnie "ok" to ma przeszukiwać dysk dalej od miejsca gdzie program skończył.
--Pracuję w Delphi

Pozdrawiam
naszy@poczta.fm

0

sorry...powyższa odpowiedź była do Sheitara :-)--Pracuję w Delphi

Pozdrawiam
naszy@poczta.fm

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.