Left() Right()

SMeier

Grünschnabel
Letztes vorkommen eines Zeichens in einem AnsiString

Hallo,

Ich ab einen AnsiSting, in dem ich nach dem letzten vorkommen eines Zeichens suchen will.
Als Rückgabewert brauche ich einen Integer.
Ich hab dazu bisher nur die Funktion Pos gefunden.
Diese Funktion begínngt aber am Anfang des Stings und nicht am Ende?

Hab leider nicht geschafft ne eingene Funktion zu schreiben?

Gibts da was oer kann mir jemand helfen?

Stefan
 
Zuletzt bearbeitet:
Jo zB:
String string = "Hallo";
int laenge = string.Length();
if (string[laenge] == 'o')ShoeMessge("das letzte Zeichen ist ein o");

du kannst ja jedes Zeichen abklappern zb mit ner for schleife

for(int i = 0;i<string.Length();i++)
if (string[laenge] == 'o')ShoeMessge("das Zeichen ist ein o und ist an Stelle " + IntToStr(i));

Hoffe das bringt dich weiter
 
Zuletzt bearbeitet:
Hier eine Funktion, die ich dafür benutze:

Code:
int AnsiStringLastPos( AnsiString String, AnsiString Find )
{
	int Pos;
	int DelLength = 0;
	int LastDelLength;
	int LastPos;

	// prüfen ob Suche lohnt
	if( !String.Pos( Find ) || Find == "" )
	{
		return 0;
	}
	else
	{
		// lösche sukzessive alle von vorneherein vorkomenden
		// Ergebnisse und merke jeweils den Vorgänger
		while( ( Pos = String.Pos( Find ) ) != 0 )
		{
			LastPos = Pos;
			LastDelLength = DelLength;

			DelLength += Find.Length();

			String.Delete( Pos, Find.Length() );
		}

		// Ergebnis ist die letzte gültige Position +
		// der insgesamt gelöschten Zeichen
		return LastPos + LastDelLength;
	}
}
 
Warum nicht einfach LastDelimiter nutzen?

Builder Hilfe: "Die Methode LastDelimiter gibt den Index des am weitesten rechts stehenden Zeichens zurück, das mit einem beliebigen Zeichen im String delimiters identisch ist."

int __fastcall LastDelimiter(const AnsiString& delimiters) const;
 
LastDelimiter hat nicht so funktioniert, wie ich mir das gewünscht habe.

Aber stimmt, für den Fall von SMeier dürfte es das richtige sein.

Ich such halt nur noch mit meiner Funktion, weil ich da auch das Vorkommen
eines Strings im String von hinten suchen kann, und nicht nur einzelne Zeichen...

BadMourning
 

Neue Beiträge

Zurück