Unterschied TStringlist vs Memo->Lines
-
Hi,
warum funktioniert im folgenden Codeabschnitt die Funktion 'IndexOfName()' (wahlweise auch Values[]) nur in Verbindung mit z.B.einem MemoControl, obwohl sie doch auch in einer TStringList vom gleichen TStrings-Objekt abgeleitet wurde?TStringList* myList = new TStringList(); //eine *.ini Datei Sektion in die TStrinliste einlesen myIniIn->ReadSectionValues("IrgendeineSektion", myList); //den Inhalt der TStringliste in eine Memo Kompo kopieren for (int i = 0; i < myList->Count; i++) myList->Strings[i] = Memo1->Lines->Add(myList->Strings[i]); //irgendwo steht jetzt: Name=Wert; //nach "Name" suchen wir AnsiString asTmp = "Name"; int iRet1 = Memo1->Lines->IndexOfName(asTmp); //ergibt die Position von "Name" int iRet2 = myList->IndexOfName(asTmp); //ergibt -1Ich würde gern den Inhalt einer *.ini Datei direkt in einer TStringListe bearbeiten, bei diese speziell dafür vorgesehene Funktion scheine ich aber irgendetwas zu übersehen.
-
Hallo,
du bist dir schon im klaren das du mit
myList->Strings[i] = Memo1->Lines->Add(myList->Strings[i]);den Inhalt deines myList->Strings[i] überschreibst!
-
SilentSurfer schrieb:
//den Inhalt der TStringliste in eine Memo Kompo kopieren for (int i = 0; i < myList->Count; i++) myList->Strings[i] = Memo1->Lines->Add(myList->Strings[i]);Vermutlich liegt es am "Kopier-Code". Was weist Du denn myList->Strings[i] zu (und warum)?
Schau Dir mal an, was TStringList::Add() zurückgibt - oder schmeiß mal den Debugger an.Gruß,
Alexander
-
sch...
danke, ihr habt recht,
das Add gibt natürlich keine Stringreferenz sondern nur einen int zurück,
das wars dann natürlich mit der Stringliste.Wer in der Methodenreferenz lesen kann, ist klar im Vorteil.