AGB  ·  Datenschutz  ·  Impressum  







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

Delimiter-Strigliste abarbeiten

Ein Thema von NoName1 · begonnen am 6. Feb 2024 · letzter Beitrag vom 6. Feb 2024
Antwort Antwort
NoName1

Registriert seit: 8. Mär 2018
196 Beiträge
 
Delphi 12 Athens
 
#1

Delimiter-Strigliste abarbeiten

  Alt 6. Feb 2024, 11:26
Delphi-Version: 5
Guten Tag,
Ich habe eine Stringliste (ManungenSL) mit mehreren Zeilen. Die Stringliste hat als Trenner ein Semikolon
Beispiel:
Delphi-Quellcode:
      j := 0;
      ibqryZeigeForderungen.First;
      for i := 1 to grdZeigeForderungen.RowCount - 1 do
        begin
          if grdZeigeForderungen.GetCheckBoxState(1, i, pState) then
            begin
              if pState then
                begin
                  ibqryZeigeForderungen.MoveBy(i - 1 - j); // muss zuerst (MoveBy verschiebt den Datensatz)

                  pSLInput := ibqryZeigeForderungenFORDAUS.AsString + ';'
                    + ibqryZeigeForderungenFORDERUNGSTXT.AsString + ';'
                    + FloatToStrF(ibqryZeigeForderungenFORDERUNG.AsCurrency, ffCurrency, 8, 2) + ';'
                    + FloatToStrF(ibqryZeigeForderungenOFFEN.AsCurrency, ffCurrency, 8, 2);
                  MahnungenSL.Delimiter := ';';
                  MahnungenSL.DelimitedText := pSLInput;
                  MahnungenSL.StrictDelimiter := True;

                  j := i - 1; // muss zuletzt
                end;
            end;
        end;
Der Quellcode macht was er soll!!

Ich möchte nun die einzelnen Zeilen der Stringliste abarbeiten.
Meine Versuche scheiterten bisher kläglich.
for i := 0 to strigliste.Count - 1
Liest nur die Spalten der letzten Zeile.

Meine Fragen dazu:
Wie wird der Zeige auf die erste Zeile gestellt?
Ist evtl. eine Delimiter-Liste falsch und eine "Zusammenhänge Liste" besser
oder gar ein Record?


Vielen Dank im Voraus an die Tippgeber.

Geändert von NoName1 ( 6. Feb 2024 um 12:23 Uhr) Grund: QuellCode hinzugefügt
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.438 Beiträge
 
Delphi 12 Athens
 
#2

AW: Delimiter-Strigliste abarbeiten

  Alt 6. Feb 2024, 11:37
Mach doch bitte ein komplettes Beispiel mit Code der dein Problem nachvollziehen lässt. Die textuelle Beschreibung ist leider nicht eindeutig genug.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.029 Beiträge
 
Delphi 12 Athens
 
#3

AW: Delimiter-Strigliste abarbeiten

  Alt 6. Feb 2024, 11:45
SL.StrictDelimiter:=True; , sonst werden auch Leerzeichen/Tabt/usw. als Delimiter betrachtet

Was für ein Curser?

Einmal mit FOR über jede Zeile und dann jede Zeile einzeln an dein DelimitetText zuweisen.
Delphi-Quellcode:
for i := 0 to StringListe.Count - 1 do begin
  SL.DelimitedText := StringListe[i];
  // hier in SL alle Werte der aktuellen Zeile
  

for var Line in StringListe do begin
  SL.DelimitedText := Line;
  // hier in SL alle Werte der aktuellen Zeile


und bitte [DELPHI]dein code[/DELPHI] benutzen
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 6. Feb 2024 um 11:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.438 Beiträge
 
Delphi 12 Athens
 
#4

AW: Delimiter-Strigliste abarbeiten

  Alt 6. Feb 2024, 12:33
Der Quellcode macht was er soll!!
Das sehe ich anders. Du erwartest, dass die Zuweisung MahnungenSL.DelimitedText := pSLInput; die Stringliste erweitert - tut sie aber nicht! Sie wird dagegen komplett ersetzt und enthält am Ende nur die Daten des letzten Records.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
NoName1

Registriert seit: 8. Mär 2018
196 Beiträge
 
Delphi 12 Athens
 
#5

AW: Delimiter-Strigliste abarbeiten

  Alt 6. Feb 2024, 13:21
Der Quellcode macht was er soll!!
Das sehe ich anders. Du erwartest, dass die Zuweisung MahnungenSL.DelimitedText := pSLInput; die Stringliste erweitert - tut sie aber nicht! Sie wird dagegen komplett ersetzt und enthält am Ende nur die Daten des letzten Records.
Danke für den Tipp.
Da eine Schleife durchlaufen wird, habe ich gedacht, es wird jedesmal eine neue Zeile erzeugt und hinzugefügt.
Das scheint aber nicht der Fall zu sein.Aber was soll stattdessen genommen werden?
MahnungenSL.ADD(pSLInput) ist doch auch nicht richtig.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.438 Beiträge
 
Delphi 12 Athens
 
#6

AW: Delimiter-Strigliste abarbeiten

  Alt 6. Feb 2024, 13:36
Eine separate TStringList mit DelimitedText pro Datensatz befüllen und diese dann mit AddStrings an die bestehende anhängen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.029 Beiträge
 
Delphi 12 Athens
 
#7

AW: Delimiter-Strigliste abarbeiten

  Alt 6. Feb 2024, 13:59
Was ist das für ein Grid?
etwa Delphis TStringGrid?

Wenn ja, dann gibt es dort doch je Row eine interne StringList (glaub ich),
von welcher man eventuell das DelimitedText aufrufen kann.
Das für jede Zeile machen und an eine neue StringListe als Zeile (Add) anhängen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  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:36 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