![]() |
jeden anfangsbuchstaben eines wortes groß machen
moin!
ich möchte einen string einlesen mit beispielsweise 5 wörtern. dann soll einfach von jedem wort der erste buchstabe großgeschrieben werden. hat jemand eine idee wie das geht, oder vielleicht sogar schon eine fertige funktion ? vielen dank.. |
Re: jeden anfangsbuchstaben eines wortes groß machen
Du könntest z.B. per pos den String nach leerzeichen durchsuchen und dann das nächste zeichen per uppercase vergrößern.
|
Re: jeden anfangsbuchstaben eines wortes groß machen
*hab schon*
|
Re: jeden anfangsbuchstaben eines wortes groß machen
Zitat:
|
Re: jeden anfangsbuchstaben eines wortes groß machen
Suche einmal bei Jedi nach AnsiProperCase: Bei den RxTools gab es diese Funktion.
Du könntest auch Folgendes mit ![]()
Delphi-Quellcode:
Ohne Gewähr: Mit DelimitedText habe ich (s.o.) niemals gearbeitet.
function AnsiProperCase( string sQuelle ): string
var sListe: TStringList; x1: integer; begin Result := ''; sListe := TStringList.Create; try // Quelltext komplett übernehmen sListe.Delimiter := ' '; sListe.QuoteChar := #0; sListe.DelimitedText := sQuelle; // als DelimitedText steht jedes Wort in einer einzelnen Zeile; // jetzt wird jede Zeile einzeln verarbeitet for x1 := 0 to sListe.Count - 1 do begin if sListe[x1] <> '' // die Konvertierung wird etwas umständlicher, // weil AnsiUpperCase mit strings arbeitet then sListe[x1] := AnsiUpperCase( Copy(sListe[x1],1,1) + Copy(sListe[x1],2,Length(sListe[x1]); end; // geänderten Gesamtstring zurückgeben Result := sListe.DelimitedText; finally sListe.Free; end; end; Gruß Jürgen |
Re: jeden anfangsbuchstaben eines wortes groß machen
@Jürgen Thomas: Anstelle mit AnsiUpperCase kann man auch einfach die Api-Funktion nutzen und dort direkt den Speicher des Zeischens angeben.
Delphi-Quellcode:
function FirstCharBig(AText: String): String;
var lCount : Integer; lWasDel : Boolean; begin lWasDel := True; for lCount := 1 to Length(AText) do begin if not(AText[lCount] in ['a'..'z', 'A'..'Z']) then lWasDel := True else if lWasDel then begin CharUpperBuff(@AText[lCount], 1); lWasDel := False; end; end; result := AText; end; |
Re: jeden anfangsbuchstaben eines wortes groß machen
Guten Abend,
nicht vergessen - was kein Anfangsbuchstabe ist gehört klein geschrieben:
Delphi-Quellcode:
Grüße vom marabu
// const CHARS = ['A'..'Z','Ä','Ö','Ü','a'..'z','ä','ö','ü'];
function ProperCase(const s: String): String; var i: Integer; bStart: Boolean; begin Result := AnsiLowercase(s); bStart := True; for i := 1 to Length(s) do if s[i] in CHARS then begin if bStart then CharUpperBuff(@Result[i], 1) else CharLowerBuff(@Result[i], 1); bStart := False; end else bStart := True; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:46 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz