Autor Beitrag
Smartie
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: Mo 30.05.05 09:34 
Hallo,

so wie ich das verstehe, kann ich nicht zwei verschiedene Datensätze nebeneinander in eine Stringlist setzen (Ich habe zwei Vektoren, der Eine beinhaltet die Variablennamen, der andere die Daten selbst).

Ok, dann muß ich das wohl über Zwei Stringlisten speicehrn.

Nur, wie mach ich das, den Inhalt eines Array of Variant in eine String-Liste zu speichern. Das ganze natürlich in eine txt-Datei, die, sollte sie schon existieren, gelöscht bzw. überschrieben werden soll.

Ich stehe grad irgendwie auf dem Schlauch.

Herzlichen Dank und lieben Gruß

Smartie
Lannes
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2352
Erhaltene Danke: 4

Win XP, 95, 3.11, IE6
D3 Prof, D4 Standard, D2005 PE, TurboDelphi, Lazarus, D2010
BeitragVerfasst: Mo 30.05.05 11:46 
Hallo,

wenn ich deine Frage richtig verstehe, müsste die StringList geignet sein.
Hier mal etwas Code zu Names und Values:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.Button2Click(Sender: TObject);
var MySL : TStringList;
begin
  MySL := TStringList.Create;
  try
    MySL.Add('Peter=12');
    MySL.Add('Hans=21');
    MySL.Add('Peter=16');
    showmessage(MySL[1]);
    showmessage(MySL.Names[1]);//Variablennamen anzeigen
    showmessage(MySL.Values[MySL.Names[1]]);//Wert anzeigen (Delphi 3 u. ???)
    //showmessage(MySL.ValueFromIndex[1]););//ab Delphi 6 ???
    MySL.Values[MySL.Names[1]] := '100';//anderen Wert zuweisen
    showmessage(MySL[1]);
    showmessage(MySL.Values['Hans']);//Wert von Hans anzeigen
    Memo1.Lines.AddStrings(MySL);
    MySL.SaveToFile('c:\Temp\daten.txt');
  finally
    MySL.Free;
  end;
end;

Um ein Array of Variant zu speichern hilft Dir varTyp :
ausblenden Delphi-Quelltext
1:
2:
if VarType(MyArrOfVar[i]) = varString then
  //...

Die Typen z.B. varString, varInteger ... findest Du in der Delphi-Hilfe unter "VarType".

_________________
MfG Lannes
(Nichts ist nicht Nichts) and ('' <> nil ) and (Pointer('') = nil ) and (@('') <> nil )
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mo 30.05.05 12:03 
Aber mit array zu arbeiten ist besser als mit StringLists.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
type TDaten=record
   Variablenname: String;
   Ziel: String;
  end;

var Daten: array of TDaten;
...
Smartie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 205



BeitragVerfasst: Mo 30.05.05 12:56 
user profile iconHeiko hat folgendes geschrieben:
Aber mit array zu arbeiten ist besser als mit StringLists.


Ja, das Array exestiert bereits, genau genommen zwei, eines für die Daten, das andere für die Variablennamen.

Ich arbeite auch damit udn kan ndamit auch gut leben. aber mein Abteilungsleiter, der an dem Projekt mitarbeitet, möchte unbedingt die Daten in einer Stringlist.

Danke und lieben Gruß

Smartie
deccer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 57



BeitragVerfasst: Mo 30.05.05 13:28 
ausblenden 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:
27:
28:
29:
var
  xSL: TStringlist;
  aDaten: array of TDaten;
  iIndex: integer;

begin
  xSL := TStringlist.Create;
  for iIndex := 0 to High(aDaten) do
    xSL.Add(aDaten[iIndex].VariablenName + '=' + aDaten[iIndex].Wert);
  xSL.SaveToFile('daten.txt');
  FreeAndNil(xSL);
end;

// soweit das füllen :)

function GetVarValue(xSL: TStringlist; const VariableName: string): string;
var
  iIndex: integer;

begin
  Result := '';
  if not Assigned(xSL) then
    Exit;
  for iIndex := 0 to xSL.Count - 1 do
    if xSL.Values[VariableName] <> '' then begin
      Result := xSL.Values[VariableName];
      Exit;
    end;
end;
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Mo 30.05.05 13:50 
@Heiko: Wieso sind Arrays besser? Ich bevorzuge, soweit es geht, die von Delphi bereitgestellten Klassen. Die TStringlist kann sortieren, sich speichern, laden usw. Alles, was ich mit einem Array erst mühsam selbst programmieren müsste.