AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Ersetzen von Umlauten bei groß geschriebenen Wörtern
Thema durchsuchen
Ansicht
Themen-Optionen

Ersetzen von Umlauten bei groß geschriebenen Wörtern

Ein Thema von Ackerjan · begonnen am 2. Feb 2015 · letzter Beitrag vom 3. Feb 2015
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von himitsu
himitsu
Online

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

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 11:59
Mist


ÄHhhhhhhhhh
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.338 Beiträge
 
Delphi 11 Alexandria
 
#12

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 12:01
"Ö" ist doch kein Problem.
Es folgt ein kleines "l", also "Oe".
"NÖ, das will ich nicht." ist ein Problem.

EDIT:
Obwohl das eigentlich auch klar ist. Selbst groß, der Buchstabe davor groß, also OE
Meiner Meinung nach geht das nur nicht mit einem zweibuchstabigen Wort, das mit "ß" endet.
Peter

Geändert von Jasocul ( 2. Feb 2015 um 12:05 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#13

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 12:04

Vielleicht schafft das große ß es ja im nächsten Jahrtausend in die "offizielle" deutsche Sprache.
Dein Wort in der Germanisten Gehörgang, allein mir fehlt der Glaube daß ich das noch erlebe.

Gruß
K-H

P.S.
Warum sollte man die Kodierung für das große SZ nicht trotzdem nutzen?
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 ( 2. Feb 2015 um 12:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#14

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 12:06
Das ß ist ein eSZett und kein DoppelS. Wenn schon "daß" ersetzt werden soll, dann durch "dasz" und nicht "dass".
EsZett? Du meinst diese Schokoladetäfelchen? Das ß ist jedenfalls ein "scharfes S", ergo "dass".
Uli Gerhardt
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 12:08
Ich kenn nur scharfe Peperoni.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#16

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 12:08
"Ö" ist doch kein Problem.
Es folgt ein kleines "l", also "Oe".
"NÖ, das will ich nicht." ist ein Problem.
Da hatte ich einen Gedankenfehler.

Es muss ja nicht entschieden werden, ob das Ö in oe oder Oe ungewandelt werden soll.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.
  Mit Zitat antworten Zitat
Ackerjan

Registriert seit: 4. Jun 2007
Ort: Potsdam
17 Beiträge
 
Delphi 2009 Enterprise
 
#17

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 12:19
Danke Jasocul für den Tipp. Aber auch NÖ dürfte kein Problem darstellen. Wenn es keinen Folgebuchstaben gibt und der Buchstabe davor auch noch groß ist, dann bleibt alles groß.
NÖ wird NOE
Nö wird Noe

Bei einem ß schließe ich für mich zwei Sachen aus:
1. Das die wenigen Worte mit ß und 2 Buchstaben nicht relevant sind.
Mein Kollege aß gestern eine Pizza.
2. Das niemand es schafft ein großes ß einzugeben.

Danke an himitsu für die interessanten Links.

Vielen Dank für die schnellen Antworten
Jan
Niemals aufgeben, niemals kapitulieren! - galaxy quest

Geändert von Ackerjan ( 2. Feb 2015 um 16:06 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#18

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 12:50
EsZett? Du meinst diese Schokoladetäfelchen? Das ß ist jedenfalls ein "scharfes S", ergo "dass".
Na dann schau mal hier herein.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#19

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 12:59
EsZett? Du meinst diese Schokoladetäfelchen? Das ß ist jedenfalls ein "scharfes S", ergo "dass".
Na dann schau mal hier herein.

Gruß
K-H
Uli Gerhardt
  Mit Zitat antworten Zitat
Ackerjan

Registriert seit: 4. Jun 2007
Ort: Potsdam
17 Beiträge
 
Delphi 2009 Enterprise
 
#20

AW: Ersetzen von Umlauten bei groß geschriebenen Wörtern

  Alt 2. Feb 2015, 16:30
Meine Implementierung ohne Gewehr.

Code:
function UpperLowerReplaceString(aText, aFromText, aToUpperText, aToLowerText: String): String;

    function IsLowerCaseChar(c: Char): Boolean;
    const
        cLowerCharacters = 'abcdefghijklmnopqrstuvwxyzäöü';
    begin
        Result := (Pos(c, cLowerCharacters) > 0);
    end;

    function IsUpperCaseChar(c: Char): Boolean;
    const
        cUpperCharacters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZÄÖÜ';
    begin
        Result := (Pos(c, cUpperCharacters) > 0);
    end;

var
    Pos: Integer;
    Upper: Boolean;
    weiter: Boolean;
begin
    Pos := 1;
    while Pos <> 0 do
    begin
        Pos := PosEx(aFromText, aText, Pos);
        weiter := True;
        Upper := False;
        if (Pos <> 0) then
        begin
            if weiter and (Pos < length(aText)) and IsLowerCaseChar(aText[Pos + 1]) then
            begin
                //kleiner Buchstabe nach dem Umlaut
                Upper := False;
                weiter := False;
            end;

            if weiter and (Pos < length(aText)) and IsUpperCaseChar(aText[Pos + 1]) then
            begin
                //großer Buchstabe nach dem Umlaut
                Upper := True;
                weiter := False;
            end;

            if weiter and (Pos > 1) and IsUpperCaseChar(aText[Pos - 1]) then
            begin
                //großer Buchstabe vor dem Umlaut / ß
                Upper := True;
                weiter := False;
            end;

            Delete(aText, Pos, 1);

            if Upper then
                Insert(aToUpperText, aText, Pos)
            else
                Insert(aToLowerText, aText, Pos);
        end;
    end;
    Result := aText;
end;

function OhneUmlaute(_string: String): String;
begin
    _string := ansiReplaceStr(_string, 'ä', 'ae');
    _string := ansiReplaceStr(_string, 'ü', 'ue');
    _string := ansiReplaceStr(_string, 'ö', 'oe');
    // Wichtig ist an dieser Stelle, dass ß zuerst ersetzt wird,
    _string := UpperLowerReplaceString(_string, 'ß', 'SS', 'ss');
    _string := UpperLowerReplaceString(_string, 'Ä', 'AE', 'Ae');
    _string := UpperLowerReplaceString(_string, 'Ü', 'UE', 'Ue');
    _string := UpperLowerReplaceString(_string, 'Ö', 'OE', 'Oe');
    Result := _string;
end;
Jan
Niemals aufgeben, niemals kapitulieren! - galaxy quest
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 09:04 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