Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stringumwandlung groß > klein; klein > groß (https://www.delphipraxis.net/8732-stringumwandlung-gross-klein%3B-klein-gross.html)

Helpliner 11. Sep 2003 00:07


Stringumwandlung groß > klein; klein > groß
 
Hallo Leute,

also wie ich Strings nach Klein-, oder Großbuchstaben umwandle ist klar
Delphi-Quellcode:
(Ansi)LowerCase
oder
Delphi-Quellcode:
(Ansi)UpperCase
...aber...

gibt es eine Kombination aus beidem um "ABCdef" >> "abcDEF" zu machen oder muss ich mir dafür ne Funktion stricken ??

Luckie 11. Sep 2003 02:05

Re: Stringumwandlung groß > klein; klein > groß
 
Hol dir den ASCII Code und gehe den String Zeichen für Zeichen durch. Die GRoßbuchsteben gehen von $41 bis $5B und die kleinen von $61 bis $7A.

sakura 11. Sep 2003 08:41

Re: Stringumwandlung groß > klein; klein > groß
 
Mit anderen Worten: selber machen :mrgreen:

...:cat:...

Helpliner 11. Sep 2003 09:45

Re: Stringumwandlung groß > klein; klein > groß
 
Okay, dann probier ich das mal, Danke Jungs!

Luckie 11. Sep 2003 09:51

Re: Stringumwandlung groß > klein; klein > groß
 
Delphi-Quellcode:
const
  ABC ='abcDEF';

procedure TForm1.Button1Click(Sender: TObject);
var
  Loop: Integer;
  s: String;
begin
  for Loop := 1 to length(ABC) do
  begin
    if (ABC[Loop] in ['a'..'z']) then
      s := s+AnsiUppercase(ABC[Loop])
    else
      s := s+AnsiLowercase(ABC[Loop]);
  end;
  ShowMessage(s);
end;

Christian Seehase 11. Sep 2003 10:31

Re: Stringumwandlung groß > klein; klein > groß
 
Moin Zusammen,

oder eine andere Variante.
Funktioniert aber nur für die Zeichen a-z und A-Z.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  ABC : string;
  Loop: Integer;
  s: String;
begin
  ABC := 'abcDEF';
  for Loop := 1 to length(ABC) do begin
    ABC[Loop] := chr(ord(ABC[Loop]) xor $20);
  end;
  ShowMessage(ABC);
end;

sakura 11. Sep 2003 10:44

Re: Stringumwandlung groß > klein; klein > groß
 
Und hier die komplexe, aber immer noch schnelle Lösung, welche auch Umlaute und regionale Spracheinstellungen berücksichtigt :-)

Delphi-Quellcode:
function SwapCase(const InStr: AnsiString): AnsiString;
var
  US, LS: AnsiString;
  I: Integer;
begin
  SetLength(Result, Length(InStr));
  US := AnsiUpperCase(InStr);
  LS := AnsiLowerCase(InStr);
  for I := 1 to Length(InStr) do
  begin
    if US[I] = InStr[I] then
      Result[I] := LS[I]
    else
      Result[I] := US[I];
  end;
end;
...:cat:...


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:23 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