AGB  ·  Datenschutz  ·  Impressum  







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

Problem bei Umlauterkennung

Ein Thema von DerTester · begonnen am 13. Jun 2013 · letzter Beitrag vom 13. Jun 2013
Antwort Antwort
Seite 1 von 2  1 2      
DerTester

Registriert seit: 13. Jun 2013
3 Beiträge
 
Delphi 7 Personal
 
#1

Problem bei Umlauterkennung

  Alt 13. Jun 2013, 13:58
Delphi-Version: 5
So, erstmal sorry falls ich das ins falsche Unterforum gepackt habe.
Ich muss schulbedingt ein Programm erstellen, das Umlaute einer vom Benutzer eingegebenen Zeichenkette erkennt und sie ersetzt mit z.B. "ss" für "ß" oder "ae" für "ä".
Mit Delphi kenne ich mich auch noch nicht soooo gut aus, deshalb verzeiht mir bitte, wenn das Teil voller Fehler ist.

Hier ein Teil des Codes:
Code:
readln(eingabe);
i:=1;
dummy:='';
while i<=Length(eingabe) do begin
  if eingabe[i] = 'ß' then
    dummy:=dummy+'ss'
'ß' erkennt Delphi aber leider nicht, was kann ich statt 'ß' benutzen?
Danke im Voraus
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem bei Umlauterkennung

  Alt 13. Jun 2013, 14:02
Hast Du es einmal mit Delphi-Referenz durchsuchenStringReplace versucht? Ich mag kaum glauben, dass Delphi kein 'ß' erkennen soll, es sei denn, Du verwendest einen merkwürdigen Zeichensatz.

P.S.: Willkommen in der DP

[edit] Ach, Moment, ist das ein Konsolenprogramm? In dem Fall müsstest Du wohl auf die Win32-API zurückgreifen und OEMToCharBuff bzw. CharToOEMBuff einsetzen. Allerdings erscheint mir das für eine Schulaufgabe etwas happig. [/edit]
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

Geändert von DeddyH (13. Jun 2013 um 14:07 Uhr)
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.176 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

AW: Problem bei Umlauterkennung

  Alt 13. Jun 2013, 14:03
readln? Gehen Umlaufe über die Windows-Konsole überhaupt?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: Problem bei Umlauterkennung

  Alt 13. Jun 2013, 14:06
Japp, siehe mein Edit.
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
DerTester

Registriert seit: 13. Jun 2013
3 Beiträge
 
Delphi 7 Personal
 
#5

AW: Problem bei Umlauterkennung

  Alt 13. Jun 2013, 14:14
Es ist eine Konsolenanwendung (wir benutzen nur Konsolenanwendungen). Mein Lehrer hat uns 3 Aufgaben gegeben, diese hier ist laut ihm auf Grundkursniveau (11. Klasse), und solche Dinge wie OEMToCharBuf haben wir noch gar nicht durchgenommen, was bedeutet, dass wir solche Befehle noch gar nicht nutzen sollen (die Hausaufgaben beziehen sich nur auf das, was im Unterricht durchgenommen wurde), was widerrum zu der Erkenntnis führt, dass es noch einen anderen Weg geben muss (oder mein Lehrer hat einen Fehler gemacht).
Ich hab schon stundenlang das Internet durchforstet aber nichts gefunden, fällt Euch noch was ein?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: Problem bei Umlauterkennung

  Alt 13. Jun 2013, 14:17
Ein 'Ä' in der Konsole ist nun einmal kein 'Ä' an der GUI, wenn es keine Konvertierfunktion gibt, die mir bislang verborgen geblieben ist, dann dürfte es ohne die genannten Funktionen schwierig werden.

[edit] Nur mal zum Testen: funktioniert es hiermit?
Delphi-Quellcode:
uses
  ..., Windows;

function DosToAnsi(const InStr: AnsiString): AnsiString;
begin
  SetLength(Result, Length(InStr));
  OemToCharBuffA(PAnsiChar(InStr), PAnsiChar(Result), Length(InStr));
end;

function AnsiToDos(const InStr: AnsiString): AnsiString;
begin
  SetLength(Result, Length(InStr));
  CharToOemBuffA(PAnsiChar(InStr), PAnsiChar(Result), Length(InStr));
end;
Die Eingabe wandelst Du erst mit DosToAnsi um, arbeitest damit, und vor der Ausgabe wandelst Du mit AnsiToDos wieder zurück. [/edit]
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

Geändert von DeddyH (13. Jun 2013 um 14:28 Uhr)
  Mit Zitat antworten Zitat
Hansa

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

AW: Problem bei Umlauterkennung

  Alt 13. Jun 2013, 14:27
Wahrscheinlich soll er die Funktion selber schreiben. Stichworte hierzu wären deshalb FUNCTION und vor allem CASE. Guck da mal nach. Fertige Funktion poste ich aber jetzt nicht.
Gruß
Hansa
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#8

AW: Problem bei Umlauterkennung

  Alt 13. Jun 2013, 14:29
Und was hat das jetzt damit zu tun, dass Delphi kein "Konsolen-Ä" erkennt?
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
nahpets
(Gast)

n/a Beiträge
 
#9

AW: Problem bei Umlauterkennung

  Alt 13. Jun 2013, 14:35
readln? Gehen Umlaufe über die Windows-Konsole überhaupt?
Ja, aber dort hat man die OEM-Zeichensatz und Delphi nutzt Ansi.

Eine mögliche Lösung für das ß könnte so aussehen:
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

var
  eingabe : String;
  dummy : String;
  i : Integer;
begin
  ReadLn(Eingabe);
  dummy := '';
  for i := 1 to Length(Eingabe) do begin
    case ord(Eingabe[i]) of
      225 : dummy := dummy + 'ss';
    else
      dummy := dummy + Eingabe[i];
    end;
    WriteLn(Eingabe[i],' = ',ord(Eingabe[i]));
  end;
  WriteLn(dummy);
  ReadLn;
end.
Die anderen Umlaute bitte selbst herausfinden (Sollte aber mit den paar Zeilen hier kein Problem sein.)
  Mit Zitat antworten Zitat
Benutzerbild von joachimd
joachimd

Registriert seit: 17. Feb 2005
Ort: Weitingen
679 Beiträge
 
Delphi 12 Athens
 
#10

AW: Problem bei Umlauterkennung

  Alt 13. Jun 2013, 14:38
früher, als es noch wenige fertige Funktionen gab, hat man erst einmal ein Programm geschrieben, welches den Zeichencode für einen Tastendruck ausgab. Da gab man dann alle komische Zeichen ein, schrieb den Code dazu auf und hat dann die Konvertierfunktion selbst zusamengebaut.
Joachim Dürr
Joachim Dürr Softwareengineering
http://www.jd-engineering.de
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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