![]() |
Bedingungen für IF-Abfragen aus einem String entnehmen
Hallo zusammen,
ich habe eine ListView mit mehreren Spalten. Diese Spalten enthalten unterschiedliche Daten. Diese Daten muss ich in eine andere ListView übertragen. Die Daten können immer variieren. Ich möchte in einem Assistenten zum Beispiel folgendes für Spalte 2 vorgeben können : Zitat:
Meine Frage ist nun, wie realisiere ich so einen Vorgang, wo unterschiedliche viele IF-Abfragen durchgeführt werden können ? |
AW: Bedingungen für IF-Abfragen aus einem String entnehmen
Hallo,
was mir dazu einfallen würde, wäre folgendes: Aus deiner Vorgabe machst du es wie mit einer Ini-Datei Schlüssel F, Wert 0 (natürlich in einer StringList). Und das für alle Vorgaben. Wenn du dann die Spalte 2 z. B. kopierst, dann schaust dir in einer Schleife nach ob der Zellwert in einem der Schlüssel ist, falls ja, dann wird der Zellinhalt mit dem dazugehörigen Wert in die neue ListView geschrieben |
AW: Bedingungen für IF-Abfragen aus einem String entnehmen
Zitat:
Delphi-Quellcode:
type
TConst=Record Name:string; value:integer; End; TConsts=array of TConst; var Consts:TConsts; PROCEDURE GetConsts(const s:string); var p,i,j,len:integer; name:string; value:integer; begin Consts:=Nil; len:=Length(s); p:=1; repeat i:=p; while (i<len) and (s[i]<>'=') do inc(i); if i>=len then exit; j:=i; while (j<len) and (s[j]<>';') do inc(j); // Jetzt zeigen: // p auf den Namen (F oder M etc) // i auf das "=" // j auf das ';' oder hinter das Ende des Strings SetLength(Consts,Length(Consts)+1); with Consts[High(Consts)] do begin Name:=Trim(Copy(s,p,i-p)); Value:=StrToInt(Trim(Copy(s,i+1,j-i-1))); end; p:=j+1; until p>len; end; |
AW: Bedingungen für IF-Abfragen aus einem String entnehmen
Hallo Ihr beiden,
danke erstmal für eure Antworten. Die Erstellung einer INI Datei wollte ich vermeiden, da es teilweise recht große ListViews werden können. Die Idee mit den Record und dem Array finde ich garnicht schlecht. Ich werde dazu mal ein paar Tests machen. Aber ich bin auch noch offen für andere Lösungen. Wie gesagt, die Syntax ist kein muss. |
AW: Bedingungen für IF-Abfragen aus einem String entnehmen
Zitat:
Also so: F=1 A=3 C=5 ... |
AW: Bedingungen für IF-Abfragen aus einem String entnehmen
Eigentlich ganz simpel. Ich will es nicht vorprogrammierten (hab das Gehirn in Leerlauf geschaltet), deshalb nur eine Beschreibung
Funktion 1 zerlegt String mit F=0;M=1 in Stringlist mit eben so vielen Items, wobei die Werte natürlich auch zerlegt sind, z. B: Item0 > F=0; Item1 > M=1; usw. Funktion 2 mit zwei Parametern und Boolean als Rückgabe. Die Werte werden geprüft und True's gezählt. Entspricht Anzahl Count der Anzahl True's, ist die Abfrage erfüllt. |
AW: Bedingungen für IF-Abfragen aus einem String entnehmen
TStringlist bringt doch eigentlich alles mit, was Du brauchst. Splitte den String am ";" auf (Delimiter, DelimitedText), auf die Items kannst Du dann über Names bzw. Values zugreifen.
|
AW: Bedingungen für IF-Abfragen aus einem String entnehmen
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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