Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Bedingte Anweisung in Schleife

  Alt 26. Feb 2010, 09:26
Ich habe eine Schleife über ein Array mit Feldnamen:
Delphi-Quellcode:
var
  fields: array[0..6] of string = ('name', 'desc', 'key', 'foo', 'bar', 'lolli', 'pop');

procedure TForm5.Button1Click(Sender: TObject);
var
  i: Integer;
  s: string;
begin
  Memo1.Lines.Clear;
  for i := 0 to high(fields) do
  begin
    s := setDefaultvalue('name', 'Name');
    // ...;
    // ...;
    s := fields[i] + #9 + ': ' + 'Standardwert';
    Memo1.Lines.Add(s);
  end;
end;
In dieser Schleife wird jedem Feldnamen ein Standardwert zugeordnet*. Jetzt gibt es aber Felder, denen sollen spezifische Werte zu geordnet werden. Zum Beispiel soll das Feld name nicht den Standardwert erhalten, sondern einen von mir vorgegebenen. Es soll auch möglich sein mehrere beliebige Felder mit von mir vorgegebenen Werten zu belegen, also auch zum Beispiel den Feldern name, key und pop. Alle anderen Felder sollen aber den Standardwert erhalten.

Bisherige Ausgabe:
Code:
name   : Standardwert
desc   : Standardwert
key   : Standardwert
foo   : Standardwert
bar   : Standardwert
lolli   : Standardwert
pop   : Standardwert
Gewünschte Ausgabe:
Code:
name   : name
desc   : Standardwert
key   : Hubba
foo   : Standardwert
bar   : Standardwert
lolli   : Standardwert
pop   : Bubba
Damit das ganze einfach gehandhabt werden kann, soll es eine Funktion geben, der ich das betreffende Feld und den gewünschten Wert übergebe. So dass ich einfach und schnell einem Feld einen Wert zu weisen kann:
Delphi-Quellcode:
function setDefaultValue(const field, value: string): string;
var
  i: Integer;
begin
  Result := '';
  for i := 0 to high(fields) do
  begin
    if fields[i] = field then
    begin
      Result := field + #9 + ': ' + value;
    end
  end;
end;
Mein Problem ist jetzt, dass ich bisher noch keine funktionierende Lösung gefunden habe. Und ich habe mir darüber schon Stunden den Kopf zerbrochen. Deswegen hoffe ich, dass hier jemanden eine Lösung einfällt.

Zum Nachbauen braucht ihr nur ein Memo und eine Schaltfläche auf der Form.

*) Dies ist nur ein vereinfachtes Beispiel. In Wirklichkeit muss ich dies in PHP umsetzen und das ganze ist auch noch etwas komplexer. Aber es geht um die Logik und ich habe es auf das Wesentliche runtergebrochen.

PS: Wem ein besserer Threadtitel einfällt, kann diesen gerne nennen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat