AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Groß u. Kleinschreibung eines Strings umkehren
Thema durchsuchen
Ansicht
Themen-Optionen

Groß u. Kleinschreibung eines Strings umkehren

Ein Thema von k6n · begonnen am 24. Feb 2009 · letzter Beitrag vom 25. Feb 2009
Antwort Antwort
Seite 1 von 3  1 23      
k6n

Registriert seit: 13. Feb 2009
13 Beiträge
 
#1

Groß u. Kleinschreibung eines Strings umkehren

  Alt 24. Feb 2009, 23:39
Hi,

Wie kann ich die Groß und Kleinschreibung eines String umkehren?

Aus HaLLo soll z.B hAllO werden.

Danke
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Groß u. Kleinschreibung eines Strings umkehren

  Alt 24. Feb 2009, 23:51
Könnte funktionieren:
Delphi-Quellcode:
function SwitchUpperLower(Str : String): String;
var
  i : Integer;
begin
  Result := Str;
  for i := 1 to Length(Result) do
    if UpperCase(Result[i]) = Result[i] then
      Result[i] := LowerCase(Result[i])[1]
    else
      Result[i] := UpperCase(Result[i])[1];
end;
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Groß u. Kleinschreibung eines Strings umkehren

  Alt 25. Feb 2009, 00:28
Das ist etwas schneller:
Delphi-Quellcode:
function SwitchLowerUpper(Value: String): String;
var
  i: Integer;
begin
  Result := Value;
  for i := 1 to Length(Value) do
    if Value[i] in ['a'..'z'] then
      Result[i] := Chr(Ord(Value[i]) - 32)
    else if Value[i] in ['A'..'Z'] then
      Result[i] := Chr(Ord(Value[i]) + 32);
end;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

Re: Groß u. Kleinschreibung eines Strings umkehren

  Alt 25. Feb 2009, 00:37
Zitat von jaenicke:
Das ist etwas schneller:
Delphi-Quellcode:
function SwitchLowerUpper(Value: String): String;
var
  i: Integer;
begin
  Result := Value;
  for i := 1 to Length(Value) do
    if Value[i] in ['a'..'z'] then
      Result[i] := Chr(Ord(Value[i]) - 32)
    else if Value[i] in ['A'..'Z'] then
      Result[i] := Chr(Ord(Value[i]) + 32);
end;
... logisch, lässt ja auch einiges aus ... äöü ?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Groß u. Kleinschreibung eines Strings umkehren

  Alt 25. Feb 2009, 00:37
Ganz vergessen, wenn man Umlaute braucht, dann AnsiUpperCase bzw. AnsiLowerCase (in dem Fall wäre auch die schnellere Variante überfordert)
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

Registriert seit: 10. Jun 2003
Ort: Berlin
9.648 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Groß u. Kleinschreibung eines Strings umkehren

  Alt 25. Feb 2009, 00:51
So meinte ich das mit dem schneller nicht , die Umlaute hatte ich vergessen :
Delphi-Quellcode:
function SwitchLowerUpper(Value: String): String;
var
  i: Integer;
begin
  Result := Value;
  for i := 1 to Length(Value) do
    if Value[i] in ['a'..'z', 'ä', 'ö', 'ü'] then
      Result[i] := Chr(Ord(Value[i]) - 32)
    else if Value[i] in ['A'..'Z', 'Ä', 'Ö', 'Ü'] then
      Result[i] := Chr(Ord(Value[i]) + 32);
end;
Sebastian Jänicke
AppCentral
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

Re: Groß u. Kleinschreibung eines Strings umkehren

  Alt 25. Feb 2009, 01:03
Allerdings in den Zeiten von Unicode würde ich das nicht verwenden wollen ...
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
k6n

Registriert seit: 13. Feb 2009
13 Beiträge
 
#8

Re: Groß u. Kleinschreibung eines Strings umkehren

  Alt 25. Feb 2009, 01:42
Danke an alle, funktioniert super.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#9

Re: Groß u. Kleinschreibung eines Strings umkehren

  Alt 25. Feb 2009, 08:29
Delphi-Quellcode:
function SwitchLowerUpper(const Value: String): String;
var
  i: Integer;
begin
  Result := Value;
  for i := 1 to Length(Result) do
    if Result[i] in ['a'..'z', 'ä', 'ö', 'ü', 'A'..'Z', 'Ä', 'Ö', 'Ü'] then
      Result[i] := Chr(Ord(Result[i]) xor $20);
Delphi-Quellcode:
function SwitchUpperLower(Value: String): String;
var
  uValue: String;
  i: Integer;
begin
  Result := LowerCase(Value);
  uValue := UpperCase(Value);
  for i := 1 to Length(Result) do
    if Result[i] = Value[i] then
      Result[i] := uValue[i];
end;
$2B or not $2B
  Mit Zitat antworten Zitat
Satty67

Registriert seit: 24. Feb 2007
Ort: Baden
1.566 Beiträge
 
Delphi 2007 Professional
 
#10

Re: Groß u. Kleinschreibung eines Strings umkehren

  Alt 25. Feb 2009, 08:48
Ach, das gibt es schon... und viele Wege führen nach Rom

Ich hab' wieder mal auf möglichst wenige Variablen geachtet. Ist zwar sicher unwichtig, aber welche Version ist die schnellste?

Ich durchlaufe Length(Str) nur einmal und mache ein paar Vergleiche. Die Delphi Version 3x, wenn am Anfang jeweils der komplette Str in eine Upper/Lower-Version gewandelt wird? Bei jaenicke's Version hängt es wohl von den verwendeten Zeichen ab.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:51 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz