AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Umlaute in einem String umwandeln

Ein Thema von Chris603 · begonnen am 13. Jun 2013 · letzter Beitrag vom 18. Jun 2013
Antwort Antwort
Seite 1 von 3  1 23   
Chris603

Registriert seit: 19. Mär 2013
Ort: Deutschland
13 Beiträge
 
Delphi 7 Personal
 
#1

Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 13:41
Hallo!
Bevor Ich anfange, ja das Problem wurde bereits mehrfach auf Delphi-Praxis.de behandelt, dummerweise hat mir keine einzige dieser Hilfen geholfen....

Also, was will Ich machen: Ich will den Benutzer einen String eingeben lassen(Konsole) und diesen dann ohne Umlaute ausgeben lassen. Das ist gerade eine Hausaufgabe in unserem Info-VK. Hier auf DP.de hab Ich auch die Funktion StringReplace gefunden, nur denke Ich, das wir die Funktion nicht benutzen sollten, da wir grad Schleifen durch genommen haben und es somit wahrscheinlich mit einer for-Schleife lösen sollten, außerdem wurmt mich das Problem jetzt so, das Ich es mit Schleife lösen will

Also Ich hab es am Anfang einfach mit einer for-Schleife probiert, die von 1 bis String.Lenght zählt und dann die einzelnen Zeichen per if auf Umlaute überprüft. Da das nicht funktioniert hat, hab Ich gegoogelt und hier auf DP.de ebenfalls diese Lösung gefunden, wenn auch per case-Überprüfung. Dummerweise funktioniert die Funktion bei mir nicht! Hier erstmal der Aufruf der Funktion und die Funktion selber:

Delphi-Quellcode:
// Main -> Aufgabe: Abfragen des Strings, umwandeln und Ausgeben.
procedure Main;
begin
  Writeln; Writeln; Writeln;
  Writeln('Bitte geben Sie nun den zu konvertierenden String an: ');
  Readln(strString);

  strString := ErsetzeUmlaute(strString);
  Writeln(strString);

  Writeln; Writeln; Writeln;
  Write('<ENTER> um neu zu starten....');
  Readln;

  ClrScr;
  asAppState := asRestart;
end;
Delphi-Quellcode:
function ErsetzeUmlaute(s: string): string;
var
  i: integer;
begin
  for i := 1 to length(s) do
  begin
    Case s[i] of
    'ä': result := result+'ae';
    'ü': result := result+'ue';
    'ö': result := result+'oe';
    'ß': result := result+'ss';
    else result := result+s[i];
    end;
  end;
end;
Also was macht die Funktion bei mir: gar nichts ^^ Sie gibt den String einfach so wie er ist zurück!

Mir ist aufgefallen, das wenn Ich das else ausklammere, gar nichts mit dem String gemacht wird, also scheint die case Anweisung irgendwie die Umlaute im String nicht zu erkennen....
Meine Vermutung ist, das es vlt. am Zeichensatz liegt? Leider hab Ich keinen Plan, was für ein Zeichsensatz(ANSI, UTF) da grad verwendet wird, oder welchen man verwenden sollte, da Ich eigentlich nie mit Delphi oder Strings(zumindest soche erweiterten String-Operationen) arbeite.

Ich hoffe, Ihr könnt mir helfen
LG
Chris
BuubleGamer
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

AW: Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 13:46
Na gut, jetzt kann ich sie dir geben.

Delphi-Quellcode:
  for i := 1 to Length(s) do
  begin
    case s[i] of
      #142: Result := Result + #196; {Ž}
      #153: Result := Result + #214; {™}
      #154: Result := Result + #220; {š}
      #132: Result := Result + #228; {„}
      #148: Result := Result + #246; {”}
      #129: Result := Result + #252; {}
      #225: Result := Result + #223; {á}
    else
      Result := Result + s[i];
    end;
  end;
Hat der Lehrer nichts gesagt in Richtung ASCII/ANSI ?
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

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

AW: Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 13:49
Wieviele Schüler stellen nun jetzt noch ein und die selbe Frage hier

http://www.delphipraxis.net/175335-p...ml#post1218508
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#4

AW: Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 13:59
Wieviele Schüler stellen nun jetzt noch ein und die selbe Frage hier
Das würde ich mal den Lehrer fragen. Es ist völlig unnötig in das wirklich einfache CASE ein Umlaute-Problem einzubauen. Warum wird nicht gefordert z.B. bei Zahleneingabe irgendwas per Function/Case zu machen ? Nicht mal chinesische Schüler hätten damit ein unnötiges Problem.
Gruß
Hansa
  Mit Zitat antworten Zitat
Chris603

Registriert seit: 19. Mär 2013
Ort: Deutschland
13 Beiträge
 
Delphi 7 Personal
 
#5

AW: Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 14:10
@Hansa: Daaaanke! Jetzt klappt's wenn auch mit kleiner Änderung:
Delphi-Quellcode:
function Replace(s: AnsiString): AnsiString;
var
  i: integer;
begin
  for i := 1 to Length(s) do
  begin
    case s[i] of
      #142: Result := Result + 'Ae'; // Ä
      #153: Result := Result + 'Oe'; // Ö
      #154: Result := Result + 'Ue'; // Ü
      #132: Result := Result + 'ae'; // ä
      #148: Result := Result + 'oe'; // ö
      #129: Result := Result + 'ue'; // ü
      #225: Result := Result + 'ss'; // ß
    else
      Result := Result + s[i];
    end;
  end;
end;
Davor mit den Codes kamen nur recht seltsame Zeichen raus^^

Und nein, unser Lehrer hat uns überhaupt nichts darüber gesagt, er hat uns nur die Email geschrieben:
2. Erstellen Sie ein Programm, das die deutschen Umlaute ä, ö, ü, ß in ae, oe, ue und ss in einer vom Benutzer eingegebenen Zeichenkette ersetzt und das Ergebnis wieder ausgibt. Naja, jetzt hab Ich's ja, nochmal Vielen Dank

@baumina: Sorry, das hätte mir auch weitergeholfen! Dummerweise hab Ich im Forum nicht nach Umlauterkennung, sondern nach Umlaute-Umwandeln gesucht :/ Ich hab das wirklich net gesehen, sry!

LG
Chris
BuubleGamer
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

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

AW: Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 14:23
Macht nichts, es freut mich zu sehen, dass die heutigen Lehrpläne noch auf soliden (evtl. nicht mehr ganz zeitgemäßen) Konsolenanwendungen basieren. Wer weiß, vielleicht kommen wir nach den gekachelten Apps ja wieder mal dort hin.

Das mit den verschiedenen Zeichensätzen war natürlich ne echte Gemeinheit, die dem Lehrbuch (aus welchem Jahr stammt das eigentlich?) sicherlich entgangen ist.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Chris603

Registriert seit: 19. Mär 2013
Ort: Deutschland
13 Beiträge
 
Delphi 7 Personal
 
#7

AW: Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 14:26
Es kam nicht aus einem Lehrbuch, das war einfach eine EMail, die uns unser Lehrer zugeschickt hat zusammen mit anderen Aufgaben zu Strings :/ Ich bin auch echt gespannt, ob die anderen das lösen können^^
BuubleGamer
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

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

AW: Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 14:29
Nach meiner Erfahrung stellen Lehrer ihre Aufgaben auch nur aus einem Lehrbuch heraus.
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#9

AW: Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 14:31
Der Spickzettel ist ja jetzt im Internet gelandet. Bei uns wurde der noch auf dem Schulhof oder unter der Bank weitergereicht. Heutiger Nachteil davon : "Feind" hört mit.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von jaenicke
jaenicke

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

AW: Umlaute in einem String umwandeln

  Alt 13. Jun 2013, 14:35
Das passiert halt, wenn man die Schüler nicht mit (für Schüler wohl eher interessanten) Fenstern arbeiten lässt, sondern auf Kommandozeilenebene arbeitet...
Bei uns wurde graphisch gearbeitet und das kam auch gut bei den Schülern an und funktionierte auch sehr gut. Ich glaube bei Kommandozeilen hätte die Hälfte Informatik abgewählt...
Sebastian Jänicke
Alle eigenen Projekte sind eingestellt, ebenso meine Homepage, Downloadlinks usw. im Forum bleiben aktiv!
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:43 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