AGB  ·  Datenschutz  ·  Impressum  







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

Bedingte Anweisung in Schleife

Ein Thema von Luckie · begonnen am 26. Feb 2010 · letzter Beitrag vom 1. Mär 2010
 
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
 


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 20:51 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