Frage zu Arrays
-
Hmm,
okay. Also so oder wie?
Label5->Caption = eingabe->Strings[2];
?
-
Hallo
ja, das holt die dritte Zeile aus eingabe. Achtung : wenn es die nicht gibt, kommt eine Exception, also die Grenzen des Arrays beachten.
bis bald
akari
-
und wie kann ich alle auslesen?
while schleife? oder wie!
-
UrsaMajor schrieb:
while schleife? oder wie!
Jepp. Oder for(...; ...; ...), falls dir das besser liegt.
-
Hi,
sry das ich nochmal so doof frage, aber.
Ich habe dann eine while schleife wie kann ich ihm sagen das nun schluss ist. das er nicht weiterzählt? und alle daten sollen in einem feld ausgegeben werden?
-
Ich zitier da einfach mal jemand anders (im Übrigen auch aus diesem Thread):
akari schrieb:
Dort kannst du die Zeilen mit dem Array TStringList->Strings[] von 0 bis TStringList->Count durchgehen.
-
Hallo
da eingabe bereits ein Array ist, läßt du alle Werte dort drinnen, und holst dir nur die gerade anzuzeigenden Werte :
TStringList *eingabe; ... // Datei in eingabe einlesen int RecordCount = eingabe->Count / 3; // Anzahl der vorhandenen Einträge bestimmen ... int CurrRecord = 2; // Dritter Eintrag soll gelesen werden AnsiString Text1 = eingabe->Strings[CurrRecord *3]; // erste Zeile des dritten Eintrags AnsiString Text2 = eingabe->Strings[CurrRecord *3 +1]; // zweite Zeile des dritten Eintrags AnsiString Text3 = eingabe->Strings[CurrRecord *3 +2]; // dritte Zeile des dritten Eintragsbis bald
akari
-
Hi nochmal,
danke für die gute hilfe. eine sache ist dennoch komisch! Folgender Code:
const String dateiname="projekttage.kpt"; TStringList *eingabe; eingabe=new TStringList; eingabe->LoadFromFile (dateiname); int maxeintrag = eingabe->Count / 3; Label5->Caption = maxeintrag; int welchereintrag = 0; for (int a=1;a<maxeintrag;a++) { AnsiString texta = eingabe->Strings[welchereintrag *3]; AnsiString textb = eingabe->Strings[welchereintrag *3 +1]; AnsiString textc = eingabe->Strings[welchereintrag *3 +2]; AnsiString text, mastertext; mastertext = texta+"\n"+textb+"\n"+textc+"\n"+text; text = mastertext; Label6->Caption = mastertext; welchereintrag=welchereintrag+a;Der mastertext wird ausgegeben, jedoch immer nur das letzte array. es sollen aber alle angezeigt werden. ist doch so richtig oder?
-
Hallo
also mir kommen da doch ein paar Bedenken...
- wo ist denn die Schleife zuende? Ich seh nur öffnende Klammer.
Dies ist wichtig, da dadurch nur der letzte Wert deine Schleife verläßt, denn alle Variablen werden in der Schleife deklaraiert und damit auch initialisert- was stellst du dir denn unter der Bedingung der Schleife vor?
for (int a=1;a<maxeintrag;a++) { ... welchereintrag=welchereintrag+a;nur a ist dein Index, wozu brauchst du welchereintrag
- was soll das ?
[cpp]mastertext = texta+"\n"+textb+"\n"+textc+"\n"+text;
text = mastertext;[/cpp]
Du hast viel zuviele Variablen, und weist denn kreuz und quer Zeug zu.- wohin soll denn die Ausgabe erfolgen? Beachte : Es macht keinen Sinn, die einzelnen Zeilen aus der StringList in einen String zu schreiben!
Und wenn, dann nimm ganz einfach TStringList->Text- /Edit : Wenn du alle Daten auf einmal anzeigen willst, nimm doch statt TEdit ein TListBox
ListBox1->Items->Assign(StringList);fertig.
bis bald
akari
-
Ich denke mal, der Hauptfehler ist, dass mastertext in der Schleife immer wieder neu deklariert und demzufolge gelöscht wird. Weswegen nur der letzte Eintrag sichtbar wird.