AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

bei datei laden ';' ignorieren...

Ein Thema von Headi · begonnen am 5. Jan 2006 · letzter Beitrag vom 5. Jan 2006
Antwort Antwort
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#1

bei datei laden ';' ignorieren...

  Alt 5. Jan 2006, 15:06
Hallo Leute,

Also ich habe es einfach noch nicht hingekriegt mein Problem zu lösen.
Ich habe eine datei, in der die zeilen, die mit ";" beginnen nicht geladen werden dürfen.
Jetzt nur wie ignoriere ich diese Zeilen?
Ich lade jetzt die daten in ein stringgrid, nur möchte ich ungerne meinen ganzen code umschreiben.
Nur wie mache ich das jetzt?

ich denke mit RightStr und LeftStr sollte ich einfach an das erste zeichen rankommen, aber wie sag ich dass er dann diese zeile nicht laden darf?
Naja ich denke ihr wisst schon was ich meine.

Hier mal mein code zum laden der Daten:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject); //sfv file öffnen
var
  i : integer;
begin

  if OpenDialog1.Execute then
   begin
    SL.LoadFromFile(OpenDialog1.FileName); //sfv daten in stringlist speichern
    SL.Delimiter :=' ';

    SLSub.Clear;

    StringGrid1.RowCount:=SL.Count+1; //stringgrid zeilen erstellen

    for I := 0 to SL.Count - 1 do
     begin
      SLSub.DelimitedText := SL[I];

      StringGrid1.Cells[0, (1+(I))]:=SlSub[0]; //dateiname in stringgrid einfügen
      StringGrid1.Cells[2, (1+(I))]:=Uppercase(SlSub[1]); //hash wert in stringgrid einfügen
      StringGrid1.Cells[1, (1+(I))]:='ready'; //status gleich ready
     end;

    //SLSub.Free;

    //sl.Free;
    Button2.Enabled:=true;
    Button4.Enabled:=false;
   end;
end;
hoffe ihr könnt mir eine bei einer Lösung helfen, die nicht den ganzen code verändert.

vielen dank schonmal

greez headi
Pascal
  Mit Zitat antworten Zitat
marabu

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

Re: bei datei laden ';' ignorieren...

  Alt 5. Jan 2006, 15:11
Hallo Headi,

ohne deinen sonstigen Code zu verändern? Du kannst die Zeilen direkt nach dem LoadFromFile() entfernen:

Delphi-Quellcode:
procedure DeleteComments(s: TStrings; meta: char);
var
  i: integer;
begin
  for i := Pred(s.Count) downto 0 do
    if Copy(s[i], 1, 1) = meta then
      s.Delete(i);
end;
Nur eine von vielen möglichen Lösungen für dein Problem.

Neujahrsgrüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: bei datei laden ';' ignorieren...

  Alt 5. Jan 2006, 15:22
Hier mein Vorschlag:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject); //sfv file öffnen
var
  i : integer;
begin

  if OpenDialog1.Execute then
   begin
    SL.LoadFromFile(OpenDialog1.FileName); //sfv daten in stringlist speichern

    //ergänzt:
    i := 0;
    While i < SL.Count do
    begin
      If SL[i][1] = ';then SL.Delete(i)
      else Inc(i);
    end;

    SL.Delimiter :=' ';

    SLSub.Clear;

    StringGrid1.RowCount:=SL.Count+1; //stringgrid zeilen erstellen

    for I := 0 to SL.Count - 1 do
     begin
      SLSub.DelimitedText := SL[I];

      StringGrid1.Cells[0, (1+(I))]:=SlSub[0]; //dateiname in stringgrid einfügen
      StringGrid1.Cells[2, (1+(I))]:=Uppercase(SlSub[1]); //hash wert in stringgrid einfügen
      StringGrid1.Cells[1, (1+(I))]:='ready'; //status gleich ready
     end;

    //SLSub.Free;

    //sl.Free;
    Button2.Enabled:=true;
    Button4.Enabled:=false;
   end;
end;
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#4

Re: bei datei laden ';' ignorieren...

  Alt 5. Jan 2006, 15:25
warum nicht einfach in der schleife, die eh schon da ist?

Delphi-Quellcode:
for I := 0 to SL.Count - 1 do
  begin
   if SL[I][1] = ';then // Wenn 1. Zeichen = ';'
    Continue; // dann weiter

   SLSub.DelimitedText := SL[I];

   StringGrid1.Cells[0, (1+(I))]:=SlSub[0]; //dateiname in stringgrid einfügen
   StringGrid1.Cells[2, (1+(I))]:=Uppercase(SlSub[1]); //hash wert in stringgrid einfügen
   StringGrid1.Cells[1, (1+(I))]:='ready'; //status gleich ready
  end;
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: bei datei laden ';' ignorieren...

  Alt 5. Jan 2006, 15:31
Jo, stimmt. Das geht auch:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject); //sfv file öffnen
var
  i : integer;
begin

  if OpenDialog1.Execute then
   begin
    SL.LoadFromFile(OpenDialog1.FileName); //sfv daten in stringlist speichern
    SL.Delimiter :=' ';

    SLSub.Clear;

    StringGrid1.RowCount:=SL.Count+1; //stringgrid zeilen erstellen

    for I := 0 to SL.Count - 1 do
     begin
      if SL[I][1] <> ';then // <-- hier ergänzen
       begin // <-- hier auch ergänzen
        SLSub.DelimitedText := SL[I];

        StringGrid1.Cells[0, (1+(I))]:=SlSub[0]; //dateiname in stringgrid einfügen
        StringGrid1.Cells[2, (1+(I))]:=Uppercase(SlSub[1]); //hash wert in stringgrid einfügen
        StringGrid1.Cells[1, (1+(I))]:='ready'; //status gleich ready
       end; // <-- und hier ergänzen
     end;

    //SLSub.Free;

    //sl.Free;
    Button2.Enabled:=true;
    Button4.Enabled:=false;
   end;
end;
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Headi

Registriert seit: 17. Nov 2005
Ort: Weinfelden
101 Beiträge
 
Delphi 2007 Professional
 
#6

Re: bei datei laden ';' ignorieren...

  Alt 5. Jan 2006, 16:03
Vielen vielen dank Euch allen!!
Hab zuerst den letzten code probiert, den habe ich allerdings nicht hingekriegt.
Also habe ich den ersten code von Martin K genommen, der funktioniert perfekt!!

vielen dank

mfg headi
Pascal
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: bei datei laden ';' ignorieren...

  Alt 5. Jan 2006, 16:07
Mein erster Code funktioniert natürlich genauso, allerdings kann es bei großen Dateien länger Dauern, da die Schleife 2x durchlaufen wird.
Am besten ist es, wenn du meinen letzten aus Beitrag #5 nimmst, wahrscheinlich hast du nur begin oder end vergessen.
Ich hab dir nochmal an jede ergänzte Zeile den Kommentar drangemacht.
Ich würde diesen Code aus #5 dann nehmen, da er schneller ist.

Insgesamt sind 3 Zeilen zu ergänzen, am besten ersetzt du den kompletten Code via Kopieren und Einfügen, dann kannste nix falsch machen.

Gruß, Martin
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  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 07:33 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