Ich hoffe ich habe deiner Beschreibung richtig interpretiert.
Es geht um eine Art "Spielfeld" (ähnlich Sodoku) von 10x10 Feldern.
Jedes Feld enthält nach dem Laden genau einen Wert aus 1 .. 5.
Für die Darstellung der Daten aus den Strings wird eigentlich kein Set benötigt.
Nur wenn jedes Feld eine Auswahl aus mehreren Werte aufnehmen soll, benötigt man ein Set.
Delphi-Quelltext
1: 2: 3: 4:
| type TMyValue = (mv1, mv2, mv3, mv4, mv5); TMyField = Set of TMyValue; TMyPlayField = array[0..9, 0..9] of TMyField; |
Der Inhalt dieses Spielfeldes soll aus einer Liste von 10 Strings gelesen werden.
Jeder dieser 10 Strings besteht aus genau 10 Zeichen.
Die Zeichen '1' .. '5' ensprechen den Feldwerten mv1 .. mv5.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26:
| function StringsToMyPlayField(ASource: TStringList): TMyPlayField; var n, x, y: Integer; s: string; c: Char; v: TMyValue; f: TMyField; begin for y := 0 to 9 do begin s := ASource[y]; for x := 0 to 9 do begin c := s[x + 1]; f := []; if CharInSet(c, ['1' .. '5']) then begin n := Ord(c) - Ord('1'); v := TMyValue(n); Include(f, v); end; Result[x, y] := f; end; end; end; |