AGB  ·  Datenschutz  ·  Impressum  







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

Doppelte Buchstaben filtern

Ein Thema von ScarFace01 · begonnen am 28. Jul 2010 · letzter Beitrag vom 29. Jul 2010
Antwort Antwort
ScarFace01

Registriert seit: 1. Jul 2010
13 Beiträge
 
Delphi 2 Desktop
 
#1

Doppelte Buchstaben filtern

  Alt 28. Jul 2010, 22:33
Ich habe Probleme mit einem alten Programm von mir und bin nun dabei mir eine Erweiterung dafür zu basteln.

Das alte Tool ist sehr umfangreich und ich habe den Src dazu leider nicht mehr, kann also den Fehler dadrin nicht mehr beheben!

Egal!

Es geht auf jeden Fall dadrum, dass ich einen Text erhalte der decodiert bzw. generiert wird aber nen Fehler hat und mit so ziemlich alle Buchstaben/Ziffern doppelt ausgiebt. Dafür nun die Erweiterung die den Text filtern soll.

Hier mal ein Beispiel Text den ich erhalte:
Zitat:
HHaalllloo,, iicchh bbiinn eeiinn BBeeiissppiieell TTeexxtt!!
Gibt es eine relativ einfach Möglichkeit diesen text nun zu zu filtern, dass er wieder ein normaler Text wird?

Ich könnte ja einfach in einer Schleife anhand von pos() und stringreplace() nach den doppelten Buchstaben suchen und sie ersetzten aber was mache ich mit den doppelten, die doppelt bleiben sollen? wie in HHaalllloo(Hallo)? Gibt es eine Befehl in der Art wie strip() oder so der dafür funktionieren würde? Ich denke mal nicht. Aber ich hoffe, dass mich hier jemand auf ne Idee bringen kann und/oder sogar nen Beispiel oder Schnipsel Code für mich hat!

Danke im Vorraus!
  Mit Zitat antworten Zitat
Benutzerbild von XHelp
XHelp

Registriert seit: 12. Jul 2004
Ort: Duisburg
172 Beiträge
 
Delphi 6 Enterprise
 
#2

AW: Doppelte Buchstaben filtern

  Alt 28. Jul 2010, 22:51
Vllt sowas wie:
Delphi-Quellcode:
function parseDoubleLetters(s:string):string;
var
  i:integer;
begin
i:=1;
result:='';
while (i<=length(s)) do begin
  result:=result+s[i];
  if (s[i]=s[i+1]) then begin
    inc(i);
  end;
  inc(i);
end;
end;
Ansonsten lässt sich bestimmt auch irgendein schlauer RegEx bauen.
Alex
Von allen Dingen die mir verloren gegangen,
hab ich am meisten an meinem Verstand gehangen

Geändert von XHelp (28. Jul 2010 um 22:53 Uhr) Grund: Fehler im Code
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#3

AW: Doppelte Buchstaben filtern

  Alt 28. Jul 2010, 23:12
kommt dir das über einen tastaturhook so rüber?
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Benutzerbild von XHelp
XHelp

Registriert seit: 12. Jul 2004
Ort: Duisburg
172 Beiträge
 
Delphi 6 Enterprise
 
#4

AW: Doppelte Buchstaben filtern

  Alt 28. Jul 2010, 23:22
Du kannst den RegEx (.)\1 benutzen und durch die 1. Gruppe ersetzen.
Alex
Von allen Dingen die mir verloren gegangen,
hab ich am meisten an meinem Verstand gehangen
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Doppelte Buchstaben filtern

  Alt 28. Jul 2010, 23:33
Die doppelten Buchstaben sind ja immer vorhanden.

Delphi-Quellcode:
for a:=1 to (length(quellstring) div 2) do
  result:=result+quellstring[a*2];
Einfach nur so runtergetippt.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Doppelte Buchstaben filtern

  Alt 29. Jul 2010, 07:58
[...] und mit so ziemlich alle Buchstaben/Ziffern doppelt ausgiebt.[...]
Gibt er nun immer jeden Buchstaben doppelt aus, oder nur in bestimmten Fällen. Wenn jeder Buchstabe doppelt ist, nimm die Lösung von bernau.

Anonsten hast du das Problem, dass du exakt wissen musst, wann die Buchstaben doppelt sind.

Die Funktion von XHelp filtert zwar alle doppelten Buchstaben raus, aber auch eben ein "p" aus doppelt oder ein "t" aus Mittag, was in dem Fall ja nicht gewünscht wäre.

Gruß
angos
Ansgar
  Mit Zitat antworten Zitat
Benutzerbild von XHelp
XHelp

Registriert seit: 12. Jul 2004
Ort: Duisburg
172 Beiträge
 
Delphi 6 Enterprise
 
#7

AW: Doppelte Buchstaben filtern

  Alt 29. Jul 2010, 14:53
Die Funktion von XHelp filtert zwar alle doppelten Buchstaben raus, aber auch eben ein "p" aus doppelt oder ein "t" aus Mittag, was in dem Fall ja nicht gewünscht wäre.
Die Funktion von bernau macht aus doppelt>"dpet". Bedenke, dass du die Funktionen schon mit dem passendem Wort testen musst, wo auch die Buchstaben doppelt vorkommen. Meine Funktion macht aus ddooppppeelltt>doppelt. Du hast recht, wenn es "mal doppelt, mal nicht" ist, dann wird man nichts sinnvolles machen können.
Alex
Von allen Dingen die mir verloren gegangen,
hab ich am meisten an meinem Verstand gehangen
  Mit Zitat antworten Zitat
ScarFace01

Registriert seit: 1. Jul 2010
13 Beiträge
 
Delphi 2 Desktop
 
#8

AW: Doppelte Buchstaben filtern

  Alt 29. Jul 2010, 22:22
Nein also es ist wirklich alles doppelt und auch immer! Habe mich da versehentlich falsch ausgedrückt! Es ist wirklich jedes Zeichen (sogar Space/Freizeichen) doppelt.

Ich werde das mal jetzt erst einmal mit der parseDoubleLetters() Funktion versuchen.

Was du mit "...RegEx (.)\1 benutzen und durch die 1. Gruppe ersetzen..." gemeint hast, verstehe ich leider nicht! Sry!

Aber vielen Dank für eure Ideen.
  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 12:42 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