![]() |
StringGrid - soll keine leere Zeile schreiben
Hi ich lese ein eine *.ini in ein stringgrid ein.
mein problem ist nur, er prüft alle topics in der ini, er schreibt nur die wo ein bestimmter wert zutrifft. das ist ja auch alles so gewollt, nur das einzigste problem ist, er schreibt die wo nicht zutreffen, als eine leere zeile in dem stringrid. kann ich das irgendwie unterbinden, oder verhindern? Gruß Pump3r |
Re: StringGrid - soll keine leere Zeile schreiben
Schreib dir eine Funktion, die das Eintragen/Auslesen/etc. übernimmnt und bau da eine Prüfung ein.
|
Re: StringGrid - soll keine leere Zeile schreiben
Hi Pump3r,
Zitat:
Grüße vom marabu |
Re: StringGrid - soll keine leere Zeile schreiben
Hmm, ok schaus dir mal an:
Delphi-Quellcode:
Gruß Pump3r
procedure Tf_installation.BitBtn1Click(Sender: TObject);
var ini : TIniFile; sectionlist : tstringlist; i : integer; x : integer; wert : string; _abteilung : string; begin try _abteilung := StringReplace(inidateiname,'.ini','',[rfReplaceAll, rfIgnoreCase]); rechnername_ermitteln; benutzername_ermitteln; ValueListEditor1.InsertRow('Rechnername',_rechnername,true); ValueListEditor1.InsertRow('Benutzername',_benutzername,true); ValueListEditor1.InsertRow('Abteilung',_abteilung,true); x := -1; sectionlist := TStringList.Create; BitBtn3.Enabled := true; BitBtn6.Enabled := true; if not FileExists(ExtractFilePath(application.ExeName)+'INIs\data.ini') then begin showmessage('Quelldatei existiert nicht! [data.ini] '); end; ini := tinifile.Create(ExtractFilePath(application.ExeName)+'INIs\data.ini'); ini.ReadSections(sectionlist); StringGrid1.RowCount := sectionlist.Count+1; for i:=0 to sectionlist.Count-1 do begin inc(x); wert := ini.ReadString(sectionlist.Strings[i],'abteilung',''); if pos(_abteilung,wert) > 0 then //showmessage(sectionlist.Strings[i]+' -- '+wert); begin stringgrid1.Cells[0,x+1] := ini.ReadString(sectionlist.Strings[i],'NAME','<nicht gefunden>'); stringgrid1.Cells[1,x+1] := ini.ReadString(sectionlist.Strings[i],'PFAD','<nicht gefunden>'); stringgrid1.Cells[2,x+1] := ini.ReadString(sectionlist.Strings[i],'INFO','<nicht gefunden>'); stringgrid1.Cells[3,x+1] := ini.ReadString(sectionlist.strings[i],'DOKUMENTATION','<nicht gefunden>'); end; end; finally ini.Free; sectionlist.Clear; sectionlist.Free; end; end; |
Re: StringGrid - soll keine leere Zeile schreiben
mach mal folgendes:
Delphi-Quellcode:
for i:=0 to sectionlist.Count-1 do
begin wert := ini.ReadString(sectionlist.Strings[i],'abteilung',''); if pos(_abteilung,wert) > 0 then //showmessage(sectionlist.Strings[i]+' -- '+wert); begin inc(x); stringgrid1.Cells[0,x+1] := ini.ReadString(sectionlist.Strings[i],'NAME','<nicht gefunden>'); stringgrid1.Cells[1,x+1] := ini.ReadString(sectionlist.Strings[i],'PFAD','<nicht gefunden>'); stringgrid1.Cells[2,x+1] := ini.ReadString(sectionlist.Strings[i],'INFO','<nicht gefunden>'); stringgrid1.Cells[3,x+1] := ini.ReadString(sectionlist.strings[i],'DOKUMENTATION','<nicht gefunden>'); end; end; finally ini.Free; sectionlist.Clear; sectionlist.Free; end; |
Re: StringGrid - soll keine leere Zeile schreiben
Ich würde das obere Rowcount:= count raus machen und hier:
Delphi-Quellcode:
einbauen.(Weis nich ob das bei dir funzt, aber probier das mal)
if pos(_abteilung,wert) > 0 then
//showmessage(sectionlist.Strings[i]+' -- '+wert); begin [b]if StringGrid1.Cells[0,Pred(StringGrid1.rowcount)]='' then StringGrid1.rowcount:=StringGrid1.rowcount+1;[/b] stringgrid1.Cells[0,x+1] := ini.ReadString(sectionlist.Strings[i],'NAME','<nicht gefunden>'); stringgrid1.Cells[1,x+1] := ini.ReadString(sectionlist.Strings[i],'PFAD','<nicht gefunden>'); stringgrid1.Cells[2,x+1] := ini.ReadString(sectionlist.Strings[i],'INFO','<nicht gefunden>'); stringgrid1.Cells[3,x+1] := ini.ReadString(sectionlist.strings[i],'DOKUMENTATION','<nicht gefunden>'); end; EDIT: kombiniere die Lösungen von mumu und mir und du hast es :mrgreen: |
Re: StringGrid - soll keine leere Zeile schreiben
Danke Jungs!!!
Geht 1a. Aber mumu, eine Frage, du hasst nur das inc versetz? Gruß Pump3r |
Re: StringGrid - soll keine leere Zeile schreiben
ja hab nur das inc versetzt.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 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 by Thomas Breitkreuz