AGB  ·  Datenschutz  ·  Impressum  







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

Sonderzeichen in text finden

Ein Thema von emteg · begonnen am 3. Sep 2005 · letzter Beitrag vom 4. Sep 2005
Antwort Antwort
emteg

Registriert seit: 16. Jun 2005
71 Beiträge
 
Delphi 2009 Architect
 
#1

Sonderzeichen in text finden

  Alt 3. Sep 2005, 23:42
Ich möchte ein kleines programm schreiben, dass eine textdatei einliest und dabei herausfindet, in welcher sprache der text geschrieben ist. Dies soll durch das suchen nach zeichen geschehen, die nur in der entsprechenden sprache vorkommen. Vorerst mal mit den Sprachen Deutsch, Englisch, Französisch, Spanisch, Italienisch und Türkisch.

Beispiel:
"ß" gibts nur in Deutsch
"é" gibts in Französchisch, Spanisch, Italienisch
"ñ" gibts nur in Spanisch

Am ende wird geschaut, welche zeichen vorkommen und welche sprachen daraus in Frage kommen ("der text ist wahrschienlich deutsch (D: 67%, E: 12%, S: 3%)").

Jetzt ist meine Frage, was der beste weg ist, sich die entsprechenden zeichen aus dem text zu suchen. Der Suchalgorithmus soll quasi alles von A-Z, 0-9 und alle Satzzeichen ignorieren und den rest auf die sprache prüfen.
Kurz: wie suche ich nach allem außer A-Z, 0-9 und satzzeichen?
Sollte ich die ausgeschlossenen Zeichen in einen array packen, etwa in der art:
(Pseudo code)
Delphi-Quellcode:
ignored:=false;
for i:=0 to 30 do
begin
  if zeichen=Ausgeschlossen[i] then
    ignored:=true;
end;
if ignored=false then
  ListBox.Items.Add(zeichen);
Upper/Lowercase ist klar, eventuell mache ich mir auch eine Lern routine, bei der ich einen text einlese und dann sage "das war spanisch".
Außerdem frage ich mich, ob es eventl. probleme mit verschiedenen zeichensätzen geben könnte
  Mit Zitat antworten Zitat
Benutzerbild von yankee
yankee

Registriert seit: 10. Mär 2004
1.134 Beiträge
 
Lazarus
 
#2

Re: Sonderzeichen in text finden

  Alt 3. Sep 2005, 23:56
Naja, es gibt da mehrere Möglichkeiten. Alleridngs wäre es schon gut zu wissen, ob du die Textdatei zuerst in eine memo lädst oder direkt auswertest. Aber zu den Möglichkeiten:

1. Du gehst den Text Zeichenweise durch (besonders praktisch, wenn du die Datei direkt von der Platte einliest, weil du die Datei dann gleich Zeichenweise einlesen kannst). Dann entscheidest du bei jedem Zeichen, welche Sprache das ist. Wobei du auch mehrfachvergebeungen einplanen muss. Also es gibt Sonderzeichen, die Französisch und Spanisch sein können. Naja, jedenfalls hast du dann einen array of Cardinal und jedes arrayitem steht für eine Sprache. Und bei jedem arrayitem, in dessen Sprache das Zeichen vorkommt, erhöhst du die Zahl um 1.

2. Du versuchst mit Hilfe von pos() die Menge von Zeichen zu ermitteln. Alleridings bezweifel ich, dass das schneller ist...

Ok, waren doch nur 2 Möglichkeiten, die mir gerade so eingefallen sind.

Du musst dann alleridng noch bedenken, dass, wenn in einem Text garkeine Sonderzeichen sind, dieser wahrscheinlich englisch ist und so Sachen...
Letzter Tipp: Drogen. Machen zwar nicht glücklich, geben einem aber wenigstens das Gefühl glücklich zu sein.

Have a lot of fun!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: Sonderzeichen in text finden

  Alt 4. Sep 2005, 01:33
Moin emteg,

welche Texte willst Du denn überprüfen?
Ich kann mir nämlich denken, dass Dein Verfahren durch fremdsprachliche Zitate oder auch Eigennamen stark verfälscht wird.

Zitat von emteg:
Außerdem frage ich mich, ob es eventl. probleme mit verschiedenen zeichensätzen geben könnte
Kann es bestimmt, da allein bei 8-Bit Zeichensätzen nur die Zeichen bis 127 festgelegt sind, darüber nicht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  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 02:19 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