Probleme beim zeilenweisen Stringausgeben

The root

Grünschnabel
Hallo Leute,
hätte da ein kleines Problem und hoffe ihr könnt mir helfen!

Ich habe einen Text mit Zeilenumbrüchen in eine Variable aufgenommen und will jetzt den Text zeilenweise ausgeben. Die aktuelle Zeile soll nicht in eine neue Variable kopiert werden, sondern die Position der Zeile soll vom Gesamttext subtrahiert werden.

Mein Problem besteht hier, dass bei Eingabe eines zweizeiligen Textes, die erste Zeile nicht richtig dargstellt wird "IIIIIIIIiyyI" oder so ähnlich, währenddessen die zweite Zeile korrekt dargestellt wird.

Danke schonmal im voraus Jungs.
mfg

Code:
char *aktPos = new char[strlen(TEXT)];
//in Variable 
char *buff = new char [strlen(TEXT)];
int altePos = 0;
int result;
//Funktion zum Füllen der Variable mit Text
...


//mit der Schleife Text splitten
while(aktPos)
{
	aktPos = strchr(&buff[altePos], '\n');
	result = aktPos - buff+1;
              

                 if(aktPos != NULL)
                 {
                 //Ausgabe jeder Zeile
                 MessageBox(&buff[altePos] - buff[result] , MB_OK);

                 *aktPos = buff - aktPos+1;
	altePos = result;
                 }


}
 
moin


Gib mal bitte den kompletten Code, wenn er nicht all zu groß ist.


mfg
umbrasaxum
 
Zuletzt bearbeitet:
Hallo umbrasaxum,
hier der komplette Code:

Code:
char CTestProg::parse_string(char *text)
{
	int result;
	int altePos = 0;

	if(strlen(text) == NULL)
	return 0;
	
	int length = 0;

	if(strncmp((const char*)text + strlen(text)-1, "\n", 1) != NULL)
	{
	strncpy(text + strlen(text), "\n", 2);
	}


	char *buff = new char [strlen(text)];
	strcpy(buff, text);
	char *aktPos = new char[strlen(text)];
	int curLine = 0;

	
	while(aktPos)
	{
		aktPos = strchr(&buff[altePos], '\n');
		result = aktPos - buff+1;	
		
		curLine++;
		if(aktPos != NULL)
		{
		
			MessageBox(&buff[altePos] - buff[result] , MB_OK);
			
		
	
			

			*aktPos = buff - aktPos+1;
			altePos = result;

		
		}
		
	}




	
	
	return 0;
}
ich denke der Fehler liegt irgendwo in der Speicherverwaltung..... aber weiß net wo.
mfg
 
Zurück