AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Umlaute umwandeln in zeichenkette

Offene Frage von "Mabeb"
Ein Thema von Mabeb · begonnen am 15. Nov 2009 · letzter Beitrag vom 16. Nov 2009
Antwort Antwort
Mabeb

Registriert seit: 15. Nov 2009
3 Beiträge
 
#1

Umlaute umwandeln in zeichenkette

  Alt 15. Nov 2009, 16:30
Hallo erstmal

Wir behandeln zur zeit das Thema Zeichen an bestimmten stellen suchen. Daraufhin haben wir eine aufgabe bekommen, die lautet: Ein Programm sucht in einer Zeichenkette nach alle Umlauten (ä,ö,ü)
und wandelt sie in ae,oe und ue um. Außerdem sollen wir die Zeichenkette an Datei laden (was auch immer das heist). Wir haben schon 10 min daran gearbeitet und keiner hat das irgendwie ansatzweise in einem quellcode verarbeiten können. Somit kommt jetzt meine Frage: könntet ihr mir einige Tips oder Lösungen für das Problem geben (letzte Rettung).Bitte helft mir.

ps: habs schon alleine eine stunde probiert doch mir fällt nichts ein
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Umlaute umwandeln in zeichenkette

  Alt 15. Nov 2009, 16:56
Guten Abend,

wie willst Du denn die Zeichenkette darstellen, in einem Memo?
-> Memo1.loadFromFile
Zeichen ersetzen -> Delphi-Referenz durchsuchenStringReplace (wenn Ihr das benutzen dürft?)

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Mabeb

Registriert seit: 15. Nov 2009
3 Beiträge
 
#3

Re: Umlaute umwandeln in zeichenkette

  Alt 15. Nov 2009, 17:14
Der Benutzer muss die Zeichenkette (z.B. häh) in ein edit feld eingeben und die Umlaute werden dann in einem label umgewandelt ausgegeben. Somit steht haeh da anstatt häh. Das umwandeln per button versteht sich ja.
  Mit Zitat antworten Zitat
Gargoyl

Registriert seit: 11. Mär 2007
69 Beiträge
 
#4

Re: Umlaute umwandeln in zeichenkette

  Alt 15. Nov 2009, 17:15
Also wenn ihr Delphi-Referenz durchsuchenStringReplace nicht nutzen dürft, aber externe Komponenten benutzten dürft, würde ich mir z.B. TPerlRegEx runter laden, und das mit einem regulären Ausdruck machen. Das geht ganz einfach mit regulären Ausdrücken.
  Mit Zitat antworten Zitat
Namenloser

Registriert seit: 7. Jun 2006
Ort: Karlsruhe
3.724 Beiträge
 
FreePascal / Lazarus
 
#5

Re: Umlaute umwandeln in zeichenkette

  Alt 15. Nov 2009, 17:20
Also im einfachsten Falle würde ich den String einfach zeichen für Zeichen in einer for-Schleife durchgehen, überprüfen ob das aktuelle Zeichen ein Umlaut ist, z.B. mit einer case-Struktur, und dann ggf. das Zeichen ersetzen und anschließend mithilfe der Funktion insert noch ein e anfügen.
Delphi-Quellcode:
case String[i] of
  'ä':
  begin
    String[i] := 'a';
    Insert('e', String, i+1);
  end;
end;
Könnte man noch etwas vereinfachen mithilfe von Sets und Arrays, aber das überlasse ich dir.
  Mit Zitat antworten Zitat
Mabeb

Registriert seit: 15. Nov 2009
3 Beiträge
 
#6

Re: Umlaute umwandeln in zeichenkette

  Alt 15. Nov 2009, 17:45
was bedeutet das i in deinem code
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.297 Beiträge
 
Delphi 12 Athens
 
#7

Re: Umlaute umwandeln in zeichenkette

  Alt 15. Nov 2009, 18:01
Hallo...

das [i] (Integer) stellt die Position des Cursors im String dar. Bsp. i:= 3 entspricht dem 3. Zeichen im String

PS: case mit Strings funktioniert so nicht
[edit] Kommando zurück... mit einzelnen "Buchstaben" gehts schon. nur nicht mit ganzen String´s[/edit]

Zitat Hilfe:
Zitat:
case SelektorAusdruck of
CaseListe1: Anweisung1;
...
CaseListen: Anweisungn;
end

Hierbei ist SelektorAusdruck ein beliebiger Ausdruck eines ordinalen Typs, der kleiner als 32 Bit ist (String-Typen und ordinale Typen, die größer als 32 Bit sind, sind nicht zulässig). Für CaseListe kann folgendes angegeben werden:

Eine Zahl, eine deklarierte Konstante oder ein anderer Ausdruck, den der Compiler auswerten kann, ohne dazu das Programm selbst auszuführen. CaseListe muss von einem ordinalen Typ sein, der zum Typ von SelektorAusdruck kompatibel ist. 7, True, 4 + 5 * 3, 'A', und Integer('A') sind demnach als CaseListe zulässig, Variablen und die meisten Funktionsaufrufe dagegen nicht. (Einige integrierte Funktionen wie Hi und Lo können in einer CaseListe enthalten sein. Siehe Konstante Ausdrücke.)
Ein Teilbereich der Form Erster..Letzter, wobei Erster und Letzter den obigen Kriterien entsprechen müssen und Erster kleiner oder gleich Letzter sein muss.
Eine Liste der Form Element1, ..., Elementn, wobei jedes Element den obigen Kriterien entsprechen muss.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Umlaute umwandeln in zeichenkette

  Alt 16. Nov 2009, 08:51
In Pseudocode könnte das dann so aussehen:
Code:
Laufvariable = 1
Ergebnis = ''
Solange Laufvariable <= Stringlänge Eingangsstring

  wenn Eingangsstring[Laufvariable] ist
    'ä': Ergebnis = Ergebnis + 'ae'
    'ö': Ergebnis = Ergebnis + 'oe'
    'ü': Ergebnis = Ergebnis + 'ue'
  ansonsten
    Ergebnis = Ergebnis + Eingangsstring[Laufvariable]

  Laufvariable = Laufvariable + 1
Das in eine Funktion gepackt, die einen String entgegennimmt und einen String ausgibt, und das Problem sollte gelöst sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:20 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