AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi StringGrid - soll keine leere Zeile schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

StringGrid - soll keine leere Zeile schreiben

Ein Thema von Pump3r · begonnen am 28. Nov 2005 · letzter Beitrag vom 28. Nov 2005
Antwort Antwort
Pump3r

Registriert seit: 6. Okt 2005
175 Beiträge
 
Delphi 7 Enterprise
 
#1

StringGrid - soll keine leere Zeile schreiben

  Alt 28. Nov 2005, 08:38
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
Christian Hermann
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#2

Re: StringGrid - soll keine leere Zeile schreiben

  Alt 28. Nov 2005, 08:44
Schreib dir eine Funktion, die das Eintragen/Auslesen/etc. übernimmnt und bau da eine Prüfung ein.
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: StringGrid - soll keine leere Zeile schreiben

  Alt 28. Nov 2005, 09:26
Hi Pump3r,

Zitat von Pump3r:
nur das einzigste problem ist, er schreibt die wo nicht zutreffen, als eine leere zeile in dem stringrid.
wetten, dass nicht er, sondern du selbst die Leerzeilen in das StringGrid schreibst? Zeige doch mal den Code, mit dem du das StringGrid füllst.

Grüße vom marabu
  Mit Zitat antworten Zitat
Pump3r

Registriert seit: 6. Okt 2005
175 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: StringGrid - soll keine leere Zeile schreiben

  Alt 28. Nov 2005, 10:55
Hmm, ok schaus dir mal an:

Delphi-Quellcode:
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;
Gruß Pump3r
Christian Hermann
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#5

Re: StringGrid - soll keine leere Zeile schreiben

  Alt 28. Nov 2005, 11:07
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;
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: StringGrid - soll keine leere Zeile schreiben

  Alt 28. Nov 2005, 11:08
Ich würde das obere Rowcount:= count raus machen und hier:

Delphi-Quellcode:
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;
einbauen.(Weis nich ob das bei dir funzt, aber probier das mal)

EDIT: kombiniere die Lösungen von mumu und mir und du hast es
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Pump3r

Registriert seit: 6. Okt 2005
175 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: StringGrid - soll keine leere Zeile schreiben

  Alt 28. Nov 2005, 11:42
Danke Jungs!!!

Geht 1a.

Aber mumu, eine Frage, du hasst nur das inc versetz?

Gruß Pump3r
Christian Hermann
  Mit Zitat antworten Zitat
mumu

Registriert seit: 28. Okt 2003
Ort: Bamberg
519 Beiträge
 
#8

Re: StringGrid - soll keine leere Zeile schreiben

  Alt 28. Nov 2005, 11:47
ja hab nur das inc versetzt.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz