![]() |
stringrid füllen mit suchergebnis
ich habe ein problem mit dem füllen eines stringrid mit suchergebnissen.
ein memo kann ich so ganz prima füllen... werwende dafür den tip: ![]()
Code:
ich muss aber die ersten beiden reihen eines stringrids füllen...
procedure ZuMemoFallsKiterienerfuellt(const pfad, BestimmteDatei,
SuchTextInDerDatei: string); begin if Str1IstInStr2(BestimmteDatei,pfad) and istInderDatei(SuchTextInDerDatei,pfad) then form1.memo1.lines.add('"'+pfad + '" enthält den Text "' + SuchTextInDerDatei); end; ![]() habe es so versucht, klappt aber nicht...
Code:
1) im pfad sollte aber nur noch der ordner stehen ohne pfad (C:\xyz\
procedure ZuMemoFallsKiterienerfuellt(const pfad, BestimmteDatei,SuchTextInDerDatei: string);
var i:integer; aStringList : TStringList; begin aStringList := TStringList.Create; if Str1IstInStr2(BestimmteDatei,pfad) and istInderDatei(SuchTextInDerDatei,pfad) then // form1.memo1.lines.add('"'+pfad + '" enthält den Text "' + SuchTextInDerDatei); FOR i := 0 TO aStringList.Count - 1 DO BEGIN Form1.StringGrid1.Cells[0, i + 1] := ('"'+pfad + '" enthält den Text "' + SuchTextInDerDatei[i]); end; end; , das sollte alles in die erste spalte (da wo jetzt webbrowser steht) 2) das "enthält den Text " muss raus (ist das kleinste problem ;) 3) und in die zweite spalte sollte dann der name der datei. ( da wo jetzt tippname steht) wer blickt hier durch und mag helfen? grüße horst |
Re: stringrid füllen mit suchergebnis
Moin Horst,
irgendwie ist mir Dein Problem nicht klar. Soweit ich das verstanden habe, solltest Du Dir mal ExtractFilePath, ExtractFileName, LastDelimiter und Copy anschauen. |
Re: stringrid füllen mit suchergebnis
moin christian
das was mit form1.memo1.lines.add('"'+pfad + SuchTextInDerDatei); ins memo kommt, soll in ein stringrid. (s.screenshot oben) |
Re: stringrid füllen mit suchergebnis
Moin Horst,
schau Dir doch noch mal die Eigenschaft Cells genau an. Hier werden doch als Parameter ja Spalte und Zeile angegeben. Du brauchst also für jede Spalte eine Zuweisung, und kannst es nicht, wie beim Memo, mit einer erledigen. |
Re: stringrid füllen mit suchergebnis
genau das ist ja mein problem, ich blick da nicht durch...
|
Re: stringrid füllen mit suchergebnis
Moin Horst,
na ja, statt es in eine Zelle zu schreiben
Delphi-Quellcode:
musst Du es in zwei Zellen schreiben
Form1.StringGrid1.Cells[0, i + 1] := ('"'+pfad + '" enthält den Text "' + SuchTextInDerDatei[i]);
Delphi-Quellcode:
// erste Spalte
Form1.StringGrid1.Cells[0, i + 1] := pfad; // zweite Spalte Form1.StringGrid1.Cells[1, i + 1] :=SuchTextInDerDatei[i]; |
Re: stringrid füllen mit suchergebnis
das funktioniert so nicht, was mache ich falsch?
Delphi-Quellcode:
procedure ZuMemoFallsKiterienerfuellt(const pfad, BestimmteDatei,SuchTextInDerDatei: string);
var i:integer; aStringList : TStringList; begin aStringList := TStringList.Create; if Str1IstInStr2(BestimmteDatei,pfad) and istInderDatei(SuchTextInDerDatei,pfad) then form1.memo1.lines.add('"'+pfad + '" enthält den Text "' + SuchTextInDerDatei); FOR i := 0 TO aStringList.Count - 1 DO BEGIN // erste Spalte Form1.StringGrid1.Cells[0, i + 1] := pfad; // zweite Spalte Form1.StringGrid1.Cells[1, i + 1] :=SuchTextInDerDatei[i]; end; end; |
Re: stringrid füllen mit suchergebnis
Moin Horst,
Zitat:
|
Re: stringrid füllen mit suchergebnis
das stringgrid wird nicht gefüllt...
hiermit geht es:
Delphi-Quellcode:
sieht aber komisch aus
procedure ZuMemoFallsKiterienerfuellt(const pfad, BestimmteDatei,SuchTextInDerDatei: string);
var i:integer; aStringList : TStringList; begin //aStringList := TStringList.Create; if Str1IstInStr2(BestimmteDatei,pfad) and istInderDatei(SuchTextInDerDatei,pfad) then form1.memo1.lines.add('"'+pfad + '" enthält den Text "' + SuchTextInDerDatei); FOR i := 0 TO Form1.StringGrid1.ColCount - 1 DO // erste Spalte Form1.StringGrid1.Cells[0, i + 1] := pfad; // zweite Spalte Form1.StringGrid1.Cells[1, i + 1] :=BestimmteDatei; end; ![]() |
Re: stringrid füllen mit suchergebnis
Moin Horst,
wenn ich mir das mal genauer ansehe: Kann auch nicht, denn es soll aus der StringListe gefüllt werden, die in dem Codeschnipsel nur erzeugt, aber nicht gefüllt wird, und somit einen Count von 0 hat, was dazu führt, dass die Schleife von 0 bis -1 geht, und somit übersprungen wird. Sträflicher Weise wird die StringListe nicht einmal freigegeben ;-) Irgendwie fehlt da wohl ein bisschen was Entscheidendes ;-) |
Re: stringrid füllen mit suchergebnis
Zitat:
das was fehlt weiss ich doch selber...nur wie ich das machen muss weiss ich nicht, deshalb poste ich doch hier. :-D ich verstehe auch nicht, das stand doch auch schon alles in meinem ersten beitrag. |
Re: stringrid füllen mit suchergebnis
wie soll ich in dem zusammenhang die stringliste füllen?
|
Re: stringrid füllen mit suchergebnis
Moin Horst,
das kannst eigentlich nur Du wissen, zumal so wie Du es beschrieben hast, müsste es so genügen:
Delphi-Quellcode:
Voraussetzung RowCount wird zu Beginn auf 1 gesetzt.
procedure ZuMemoFallsKiterienerfuellt(const pfad, BestimmteDatei,
SuchTextInDerDatei: string); begin if Str1IstInStr2(BestimmteDatei,pfad) and istInderDatei(SuchTextInDerDatei,pfad) then begin Form1.StringGrid1.Cells[0, Form1.StringGrid1.RowCount+1] := pfad; Form1.StringGrid1.Cells[1, Form1.StringGrid1.RowCount+1] := BestimmteDatei; Form1.StringGrid1.RowCount := Form1.StringGrid1.RowCount+1; end; end; |
Re: stringrid füllen mit suchergebnis
:balloon: das ist es...
ich muss nur noch den pfad aus aus (Pfad) rauskriegen (so das nur noch der ordnername da steht) und im zweiten stringgrid1.cells steht nur die dateiendung... das ist alles, vielen dank für deine hilfe ich will mir ein programm machen mit dem ich sourcecode-beispiele für verschiedene programmiersprachen/scripte abspeichern kann. |
Re: stringrid füllen mit suchergebnis
Hallo Horst,
gestern hatte ich Dir eine ![]() Zitat:
|
Re: stringrid füllen mit suchergebnis
ich weiss das auch, nur für mich ist es nicht ganz so leicht die zusammenhänge herauszufinden
bzw. diese anzupassen. du meinst das, gell?
Delphi-Quellcode:
:oops:
IF FindFirst(Path + '*.TXT', faAnyFile, SearchR) = 0 THEN
REPEAT IF (SearchR.Attr <> faDirectory) THEN BEGIN // nach einem Wort im Dateinamen suchen // pos ist CaseInsensitive! IF POS('x', SearchR.Name) <> 0 THEN FileList.Add(ChangeFileExt(SearchR.Name, '')); // [EDIT] ohne Extension[/EDIT] |
Re: stringrid füllen mit suchergebnis
Moin Horst,
zwei Dinge fallen mir an dem Codeschnipsel auf: 1. pos ist case sensitiv Inzwischen haben wir zu dem Thema schon einen ganzen Thread 2.
Delphi-Quellcode:
sollte besser so abgefragt werden:
(SearchR.Attr <> faDirectory)
Delphi-Quellcode:
da TSearchRec.Attr eine Bitmaske enthält. Sollte ausser faDirectory darin noch ein anderes Bit gesetzt sein, so wäre der Wert auch bei einem Directory ungleich faDirectory.
(SearchR.Attr and faDirectory) = 0
|
Re: stringrid füllen mit suchergebnis
hattee es auch schon geändert, vielen dank ;)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:29 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz