bestimmten abschnitt speichern



  • Hallo,

    ich habe folgendes Problem:
    In meinem Programm habe ich ein Memo Fenster in dem ich eine Text stehen habe z.B:

    %MM10000
    TEXT
    TEXT
    TEXT
    TEXT
    %MM20000

    ich möchte jetzt von dem ersten % Zeichen bis zum zweiten % Zeichen den Text unter dem nach dem % Zeichen folgendem Namen speichern. hier MM10000

    könnt ihr mir weiter helfen?

    mfg imme



  • Hi,

    guck dir mal die Funktionen strpbrk bzw. strtok an.

    Gruß,
    Guido



  • Hallo

    @ imme : Was ist denn genau dein Problem? Das Filtern des gewünschten Textes, oder das Speichern?
    Ich würde lieber nicht die von GNiewerth erwähnten C-Funktionen benutzten, sondern lieber die AnsiString-Methoden.

    bis bald
    akari



  • das filtern!

    mfg alex



  • Mach Dir mal ein neues Projekt, papp einen Button drauf und füge folgendes in die OnClick() ein

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    	TStringList* slDaten = new TStringList();
    	TStringList* slTemp = new TStringList();
    	slDaten->Add("%MM10000");
    	slDaten->Add("TEXT1");
    	slDaten->Add("TEXT1");
    	slDaten->Add("TEXT1");
    	slDaten->Add("TEXT1");
    	slDaten->Add("%MM20000");
    	slDaten->Add("TEXT2");
    	slDaten->Add("TEXT2");
    	slDaten->Add("TEXT2");
    	slDaten->Add("TEXT2");
    	slDaten->Add("TEXT2");
    	slDaten->Add("TEXT2");
    	slDaten->Add("TEXT2");
    	slDaten->Add("TEXT2");
    	slDaten->Add("%MM30000");
    	slDaten->Add("TEXT3");
    	slDaten->Add("TEXT3");
    	slDaten->Add("TEXT3");
    	slDaten->Add("TEXT3");
    	slDaten->Add("TEXT3");
    	slDaten->Add("TEXT3");
    	for (int i = 0; i < slDaten->Count; i++)
    	{
    		if (slDaten->Strings[i].AnsiPos("%") == 1)
    		{
    			if (!slTemp->Text.IsEmpty())
    			{
    				slTemp->SaveToFile(slTemp->Strings[0] + ".txt");
    				slTemp->Clear();
    			}
    			slTemp->Add(slDaten->Strings[i].SubString(2, slDaten->Strings[i].Length() - 1));
    		}
    		else
    			slTemp->Add(slDaten->Strings[i]);
    	}
    	if (!slTemp->Text.IsEmpty())
    	{
    		slTemp->SaveToFile(slTemp->Strings[0] + ".txt");
    	}
    
    	delete slDaten;
    	delete slTemp;
    }
    

    Zumindest sollte Dir das einen Anhaltspunkt geben, wie man das Problem lösen kann.


Log in to reply