AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Bedingungen für IF-Abfragen aus einem String entnehmen
Thema durchsuchen
Ansicht
Themen-Optionen

Bedingungen für IF-Abfragen aus einem String entnehmen

Ein Thema von RWarnecke · begonnen am 14. Jul 2012 · letzter Beitrag vom 15. Jul 2012
Antwort Antwort
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#1

Bedingungen für IF-Abfragen aus einem String entnehmen

  Alt 14. Jul 2012, 18:43
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:
F=0;M=1
Wenn das Programm jetzt die Spalte 2 in die andere Listview überträgt, dann soll in jeder Zeile von der ersten ListView wo ein F steht in die Zeile in der zweiten Listview eine 0 eingetragen werden. Das gleiche natürlich auch für M. Die Vorgabe kann ebenfalls variieren, so dass mal 1 oder 3 oder 5 Bedingungen angegeben sind. Die Syntax für die Bedingung soll hier nur ein Beispiel sein, damit ich es besser erklären kann.

Meine Frage ist nun, wie realisiere ich so einen Vorgang, wo unterschiedliche viele IF-Abfragen durchgeführt werden können ?
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#2

AW: Bedingungen für IF-Abfragen aus einem String entnehmen

  Alt 14. Jul 2012, 18:55
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
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.062 Beiträge
 
Delphi XE2 Professional
 
#3

AW: Bedingungen für IF-Abfragen aus einem String entnehmen

  Alt 14. Jul 2012, 19:23
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:
F=0;M=1
Wenn das Programm jetzt die Spalte 2 in die andere Listview überträgt, dann soll in jeder Zeile von der ersten ListView wo ein F steht in die Zeile in der zweiten Listview eine 0 eingetragen werden. Das gleiche natürlich auch für M. Die Vorgabe kann ebenfalls variieren, so dass mal 1 oder 3 oder 5 Bedingungen angegeben sind. Die Syntax für die Bedingung soll hier nur ein Beispiel sein, damit ich es besser erklären kann.

Meine Frage ist nun, wie realisiere ich so einen Vorgang, wo unterschiedliche viele IF-Abfragen durchgeführt werden können ?
Auf die Schnelle und ohne größerere Prüfung auf Fehler (nicht getestet)

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;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#4

AW: Bedingungen für IF-Abfragen aus einem String entnehmen

  Alt 14. Jul 2012, 19:31
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.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.323 Beiträge
 
Delphi XE2 Professional
 
#5

AW: Bedingungen für IF-Abfragen aus einem String entnehmen

  Alt 14. Jul 2012, 19:37
Die Erstellung einer INI Datei wollte ich vermeiden
Ich meinte ja auch nur "wie eine Ini-Datei"

Also so:

F=1
A=3
C=5
...
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#6

AW: Bedingungen für IF-Abfragen aus einem String entnehmen

  Alt 14. Jul 2012, 19:58
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.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#7

AW: Bedingungen für IF-Abfragen aus einem String entnehmen

  Alt 15. Jul 2012, 11:14
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

AW: Bedingungen für IF-Abfragen aus einem String entnehmen

  Alt 15. Jul 2012, 11:24
Diese Spalten enthalten unterschiedliche Daten. Diese Daten muss ich in eine andere ListView übertragen. ... dann soll ... eine 0 eingetragen werden.
Das ist ein Widerspruch: Entweder überträgst Du Daten oder Du trägst eine 0 (immer eine 0?) ein.
Zitat:
Meine Frage ist nun, wie realisiere ich so einen Vorgang, wo unterschiedliche viele IF-Abfragen durchgeführt werden können ?
Mit einer Schleife.
  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 11:31 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