Tech-Ecke / Delphi Inhalt / Stringoperationen

 

     Stringoperationen

 

   Grundlegendes

Ein String ist im Prinzip ein Array of Char (Character/Zeichen) ( var S: String; Zeichen: Char; )

   S := 'Test'
 Zeichen := S[1]   // Zeichen wird T enthalten
 Zeichen := S[2]   // Zeichen wird e enthalten
 

   Länge eines String ermitteln ( var S: String; Zahl: Integer; )

   S := ('dies ist ein Test');
 Zahl := length(S);
// die Variable Zahl enthält nun den Wert 17

   Position eines Zeichen oder Teilsstring in einem String suchen ( var S: String; Zahl: Integer;)

   S := ('dies ist ein X-Test');
 Zahl := pos(
'X',S); // die Variable Zahl enthält nun den Wert 14
 
   S := ('dies ist ein X-Test');
 Zahl := pos(
'ein',S); // die Variable Zahl enthält nun den Wert 10 (Anfangszeichen des Teilstrings)

Hinweis: Wurde das gesuchte Zeichen oder die Zeichenkette nicht gefunden, so ist der Rückgabewert 0.

   Einen String zurechtschneiden ( var S: String; )

Copy(String,X,Y) X ist die Startposition und Y die Anzahl der Zeichen die herauskopiert werden sollen

   S := ('dies ist ein Test');
 S := Copy(S,
14,4); // die Variable S wird nun nur noch 'Test' enthalten
 
   S := Copy(S, 4 ,length(S));   // Die ersten drei Zeichen eines Strings entfernen
 
   S := Copy(S, 1 ,length(S)-3);   // Die letzten drei Zeichen eines Strings entfernen
 
   S := ('dies ist ein X-Test');   // Bis zu einem bestimmten Zeichen oder Teilstring  abschneiden
 S := Copy(S,pos(
'X',S),length(S)); // S enthält nun ' X-Test'
 
   S := ('dies ist ein X-Test');   // Ab einem bestimmten Zeichen oder Teilstring  abschneiden
 S := Copy(S,
0,pos('X',S)); // S enthält nun ' ist ein X'
 

   Zeichen oder String  in einem String ersetzen

   S := StringReplace(S,'X','Y',[rfReplaceAll, rfIgnoreCase]); // ersetze alle X durch Y
 

   String in Groß- Kleinbuchstaben umwandeln

   S := AnsiUpperCase(S); // wandelt alle Zeichen in Großbuchstaben um
 S := AnsiLowerCase(S); // wandelt alle Zeichen in Kleinbuchstaben um
 

   String "umdrehen" ( var A, B: String; )  – benötigt StrUtils in uses!

   A := ('dies ist ein Test');
 B := ReverseString(S); // B wird nun 'tseT nie tsi seid' enthalten
 

   ASCII-Code ermitteln und zurück ( var Zahl: Integer; S: String )  

   Zahl := Ord('A');   // die Variable Zahl wird den Wert 65 bekommen

 S := Chr(65);   // die Variable wird den Wert A haben

 

   Stringoperationen an Dateinamen und Pfade

 

Ordnerpfad aus Dateipfad extrahieren ( var S: String; )

   S := ExtractFileDir('C:\test\text.txt'); // S wird "C:\test" enthalten
 

Dateiname aus Dateipfad extrahieren ( var S: String; )

   S := ExtractFileName('C:\test\text.txt'); // S wird "test.txt" enthalten
 

Dateiendung (Extension) aus Dateiname extrahieren ( var S: String; )

   S := ExtractFileExt('text.txt'); // S wird ".txt" enthalten
 

Dateiendung tauschen bzw. entfernen ( var S: String; )

   S := ChangeFileExt('text.txt','.bmp'); // S "test.bmp" enthalten

 S := ChangeFileExt('text.txt',''); // S wird "test" enthalten, also keine Endung mehr

 

"Die Option Drucken funktioniert erst ab Netscape V4.0 bzw. I-Explorer 5.0 !"

[letzte Aktualisierung 09.10.2006]