AGB  ·  Datenschutz  ·  Impressum  







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

Klartext -> ANSI -> Klartext

Ein Thema von cruso · begonnen am 23. Jul 2006 · letzter Beitrag vom 23. Jul 2006
Antwort Antwort
Seite 1 von 2  1 2      
cruso
(Gast)

n/a Beiträge
 
#1

Klartext -> ANSI -> Klartext

  Alt 23. Jul 2006, 18:49
Hi!

Ich möchte einen Text nach ANSI konvertieren und so anpassen, dass ich diesen einfach in HTML benutzen kann. Ich hab das so gelöst (funktioniert auch teilweise):

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s:String; i:Integer;
begin
s:=Edit1.Text;
Memo1.Text:=s;
For i:=0 to 255 do begin
Memo1.text := StringReplace(Memo1.text, chr(i), '&#'+IntToStr(i)+';',[rfReplaceAll]);
end;
end;

Die Problemkinder sind die Zeichen: & # ;

Wenn man es im HTML-Dokument nachher wieder "zurückübersetzt" sieht merkt man das etwas nicht ganz funktioniert hat.


Wisst ihr, wie man das Problem lösen kann?



MfG
Cruso
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Klartext -> Unicode -> Klartext

  Alt 23. Jul 2006, 18:52
Abgeseh, das ich nicht weiß was du eigentlich vorhast, könntest du die Problemzeichen zuerst konvertieren.
Markus Kinzler
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#3

Re: Klartext -> ANSI -> Klartext

  Alt 23. Jul 2006, 18:54
Und wie bekomme ich die Problemzeichen aus meiner For-Schleife raus?
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#4

Re: Klartext -> ANSI -> Klartext

  Alt 23. Jul 2006, 18:58
Ich hab das jetzt so gemacht:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s:String; i:Integer;
begin
s:=Edit1.Text;
Memo1.Text:=s;
For i:=0 to 255 do begin
if not (i=35) or (i=38) or (i=59) then
Memo1.text := StringReplace(Memo1.text, chr(i), '&#'+IntToStr(i)+';',[rfReplaceAll]);
end;
end;
Allerdings funktioniert das ganze immernoch nicht.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#5

Re: Klartext -> ANSI -> Klartext

  Alt 23. Jul 2006, 19:00
Delphi-Quellcode:
not (i=35) or (i=38) or (i=59)
//wird zu
not ((i=35) or (i=38) or (i=59))
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Klartext -> ANSI -> Klartext

  Alt 23. Jul 2006, 19:00
Die Zeichen haben den Code 23, 26, 38
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Martin K
Martin K

Registriert seit: 20. Okt 2005
919 Beiträge
 
Turbo Delphi für Win32
 
#7

Re: Klartext -> ANSI -> Klartext

  Alt 23. Jul 2006, 19:02
Warum verwendest Du ein Integer als Zählvariable?
Das sind nur unnötige IntToStr-Unwandlungen die Resourcen fressen.

Mein Vorschalg:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: Char;
begin
  Memo1.Text := Edit1.Text;
  For i := Low(Char) to High(Char) do
    if not (i in [#35, #38, #59]) then
      Memo1.Text := StringReplace(Memo1.Text, i, '&#'+IntToStr(Ord(i))+';',[rfReplaceAll]);
end;
//Edit:
Fehler korrigiert:
Eine IntToStr-Umwandlung brauch man doch - aber ich find's trotzdem so übersichtlicher.
Und wozu die zusätzliche String-Variable ist, ist mir auch unklar.
Mit den Menschen ist es wie mit Computern -
es gibt Nullen und Einsen.
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#8

Re: Klartext -> ANSI -> Klartext

  Alt 23. Jul 2006, 19:05
Zitat von mkinzler:
Die Zeichen haben den Code 23, 26, 38
Nein, es sind 35, 38 und 59.

Zitat von Martin K:
Mein Vorschalg:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i: Char;
begin
  Memo1.Text := Edit1.Text;
  For i := Low(Char) to High(Char) do
    if not (i in [#35, #38, #59]) then
      Memo1.Text := StringReplace(Memo1.Text, i, '&#'+Ord(i)+';',[rfReplaceAll]);
end;
Ord(i) == Byte(i) -
  Mit Zitat antworten Zitat
cruso
(Gast)

n/a Beiträge
 
#9

Re: Klartext -> ANSI -> Klartext

  Alt 23. Jul 2006, 19:11
Ich hab jetzt alles einmal ausprobiert, doch die Fehler schleichen sich bei allen Methoden ein.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Klartext -> ANSI -> Klartext

  Alt 23. Jul 2006, 19:12
Zitat:
mkinzler hat folgendes geschrieben:
Die Zeichen haben den Code 23, 26, 38
Nein, es sind 35, 38 und 59.
hab ausversehen die Hex-Werte gepostet.
Markus Kinzler
  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 18:59 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