Hi Jack,
für den Umgang mit den
ADO-Komponenten findest du reichlich Code im Forum und der Online-Hilfe. Deine Benutzerschnittstelle ist auch nicht so klar beschrieben, als dass ich dir Code für die Übernahme von
Access-Daten in deine Controls zeigen könnte.
Das Rechnen ist eigentlich recht einfach: Deine Daten musst du am Delimiter (Komma) zerlegen, das geht recht einfach mit einer TStringList und deren property CommaText. Für das Rechnen studiere mal den folgenden Code:
Delphi-Quellcode:
uses
RTLConsts;
type
TCountedStringList = class(TStringList)
private
function GetString(Index: Integer): string;
public
procedure AddString(const s: string);
end;
procedure TCountedStringList.AddString(const s: string);
var
index, i, n: Integer;
sDim: string;
begin
n := 0;
for i := 1 to Length(s) do
if s[i] in ['0'..'9'] then
n := n * 10 + Ord(s[i]) - Ord('0') else
begin
sDim := Copy(s, i, MaxInt);
if Find(sDim, index)
then Objects[index] := TObject(Integer(Objects[index]) + n)
else Objects[Add(sDim)] := TObject(n);
Break;
end;
end;
function TCountedStringList.GetString(index: Integer): string;
begin
if (Index < 0) or (Index >= Count) then Error(@SListIndexError, Index);
Result := Format('%d%s', [Integer(Objects[index]), Strings[index]]);
end;
3ABCDE ist nichts anderes als eine Kombination einer Zahl mit einem String - wie 500KG oder 2STD und 10MIN. Du kannst die einzelnen Strings mit AddString('3ABCDE') einer CountedStringList hinzufügen und mit GetString() und Count die Ergebnisse iterativ abholen.
Grüße vom marabu