AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein XML Delphi Sonderzeichen anzeigen lassen
Thema durchsuchen
Ansicht
Themen-Optionen

Sonderzeichen anzeigen lassen

Ein Thema von Gehstock · begonnen am 3. Okt 2006 · letzter Beitrag vom 3. Okt 2006
Antwort Antwort
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#1

Sonderzeichen anzeigen lassen

  Alt 3. Okt 2006, 11:11
[delphi]
function HTMLContent(const S: string): string;
begin
if s = '' then begin
result := '';
exit; end;
Result := StringReplace(s, '&', '&', [rfreplaceall]); Das Klappt
// Result := StringReplace(s, '"', '"', [rfreplaceall]); ab hier net mehr
// Result := StringReplace(result, '<', '&lt;', [rfreplaceall]);
// Result := StringReplace(result, '>', '&gt;', [rfreplaceall]);
// Result := StringReplace(result, '''', '&auml' [rfreplaceall]);
// Result := StringReplace(result, 'ä', '&auml;', [rfreplaceall]); // OEM
// Result := StringReplace(result, 'ö', '&ouml;', [rfreplaceall]);
// Result := StringReplace(result, 'ü', '&uuml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ä', '&Auml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ö', '&Ouml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ü', '&Uuml;', [rfreplaceall]);
// Result := StringReplace(result, '„', '&auml;', [rfreplaceall]); // ANSI
// Result := StringReplace(result, 'â€', '&ouml;', [rfreplaceall]);
// Result := StringReplace(result, '?', '&uuml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ž', '&Auml;', [rfreplaceall]);
// Result := StringReplace(result, 'â„¢', '&Ouml;', [rfreplaceall]);
// Result := StringReplace(result, 'Å¡', '&Uuml;', [rfreplaceall]);
// Result := StringReplace(result, 'ß', '&szlig;', [rfreplaceall]);
end;

delphi]
Marcel
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#2

Re: Sonderzeichen anzeigen lassen

  Alt 3. Okt 2006, 11:19
Hallo,

ab dem zweiten StringReplace mußt Du natürlich Result an die Funktion übergeben, sonst arbeitest Du immer mit dem originalen "s".

//Edit: Ich habe übrigens 'mal eine StringReplaceMultiple-Routine geschrieben, die sowas in einem Rutsch übernimmt und bestimmt wesentlich schneller ist als das originale StringReplace.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Cöster

Registriert seit: 6. Jun 2006
589 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Sonderzeichen anzeigen lassen

  Alt 3. Okt 2006, 11:22
In der ersten wegkommentierten Zeile müsstest du nicht s, sondern result schreiben.

Ich weiß aber nicht, ob das das Problem löst, weil du uns noch nicht verraten hast, warum das nicht klappt. Was passiert denn?
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Sonderzeichen anzeigen lassen

  Alt 3. Okt 2006, 11:24
Delphi-Quellcode:
 function HTMLContent(const S: string): string;
  begin
    if s = 'then begin
    result := '';
    exit; end;
    Result := StringReplace(s, '&', '&amp;', [rfreplaceall]);
    Result := StringReplace(result, '"', '&quot;', [rfreplaceall]);
// Result := StringReplace(result, '<', '&lt;', [rfreplaceall]);
// Result := StringReplace(result, '>', '&gt;', [rfreplaceall]);
// Result := StringReplace(result, '''', '&auml' [rfreplaceall]);
// Result := StringReplace(result, 'ä', '&auml;', [rfreplaceall]); // OEM
// Result := StringReplace(result, 'ö', '&ouml;', [rfreplaceall]);
// Result := StringReplace(result, 'ü', '&uuml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ä', '&Auml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ö', '&Ouml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ü', '&Uuml;', [rfreplaceall]);
// Result := StringReplace(result, '„', '&auml;', [rfreplaceall]); // ANSI
// Result := StringReplace(result, 'â€', '&ouml;', [rfreplaceall]);
// Result := StringReplace(result, '?', '&uuml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ž', '&Auml;', [rfreplaceall]);
// Result := StringReplace(result, 'â„¢', '&Ouml;', [rfreplaceall]);
// Result := StringReplace(result, 'Å¡', '&Uuml;', [rfreplaceall]);
// Result := StringReplace(result, 'ß', '&szlig;', [rfreplaceall]);
    end;
Schusselfehler ändert aber auch nix
Miniaturansicht angehängter Grafiken
unbenannt_375.jpg  
Marcel
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Sonderzeichen anzeigen lassen

  Alt 3. Okt 2006, 11:27
Hallo,

ist das Dein Output oder Dein Input?

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Gehstock

Registriert seit: 28. Jan 2006
Ort: Görlitz / Sachsen
489 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Sonderzeichen anzeigen lassen

  Alt 3. Okt 2006, 11:29
Delphi-Quellcode:

 function HTMLContent(const S: string): string;
  begin
    if s = 'then begin
    result := '';
    exit; end;
    Result := StringReplace(s, '&', '&amp;', [rfreplaceall]);
// Result := StringReplace(result, '"', '&quot;', [rfreplaceall]);
// Result := StringReplace(result, '<', '&lt;', [rfreplaceall]);
// Result := StringReplace(result, '>', '&gt;', [rfreplaceall]);
// Result := StringReplace(result, '''', '&auml' [rfreplaceall]);
// Result := StringReplace(result, 'ä', '&auml;', [rfreplaceall]); // OEM
// Result := StringReplace(result, 'ö', '&ouml;', [rfreplaceall]);
// Result := StringReplace(result, 'ü', '&uuml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ä', '&Auml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ö', '&Ouml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ü', '&Uuml;', [rfreplaceall]);
// Result := StringReplace(result, '„', '&auml;', [rfreplaceall]); // ANSI
// Result := StringReplace(result, 'â€', '&ouml;', [rfreplaceall]);
// Result := StringReplace(result, '?', '&uuml;', [rfreplaceall]);
// Result := StringReplace(result, 'Ž', '&Auml;', [rfreplaceall]);
// Result := StringReplace(result, 'â„¢', '&Ouml;', [rfreplaceall]);
// Result := StringReplace(result, 'Å¡', '&Uuml;', [rfreplaceall]);
// Result := StringReplace(result, 'ß', '&szlig;', [rfreplaceall]);
    end;


procedure TfrmMain.DispDir; //
var
  root,tmp: IXMLNode;
  ListItem: TListItem;
  i:integer;
  fSize : string;

  function FileImgIndex(FileName: String):integer;
  var
    Ext:String;
  begin
    Result := 2;
    Ext:= LowerCase(ExtractFileExt(FileName));
    if Ext='.3gpthen Result := 3 else
      if Ext='.bmpthen Result := 4 else
      if Ext='.bmxthen Result := 5 else
      if Ext='.cssthen Result := 6 else
      if Ext='.hfithen Result := 7 else
      if Ext='.gifthen Result := 8 else
      if Ext='.htmlthen Result := 9 else
      if Ext='.imythen Result := 10 else
      if Ext='.jpgthen Result := 11 else
      if Ext='.midthen Result := 12 else
      if Ext='.mmcthen Result := 13 else
      if Ext='.mmfthen Result := 14 else
      if Ext='.mp3then Result := 15 else
      if Ext='.mp4then Result := 16 else
      if Ext='.pngthen Result := 17 else
      if Ext='.srtthen Result := 18 else
      if Ext='.svgthen Result := 19 else
      if Ext='.tiffthen Result := 20 else
      if Ext='.vmgthen Result := 21 else
      if Ext='.wavthen Result := 22 else
      if Ext='.wbmpthen Result := 23 else
      if Ext='.xhtmlthen Result := 24 else
    if Ext='.xlsthen Result := 25 else
      if Ext='.derthen Result := 26 else
      if Ext='.docthen Result := 27 else
      if Ext='.datthen Result := 28 else
      if Ext='.jarthen Result := 29 else
      if Ext='.pdfthen Result := 30 else
      if Ext='.txtthen Result := 31 else
      if Ext='.jadthen Result := 32;
  end; //20050101T000000
  function FrmTimeStr(t:string):string;
  begin
    Result := Copy(t,1,4)+'-'+Copy(t,5,2)+'-'+Copy(t,6,2)+' '+
              Copy(t,10,2)+':'+Copy(t,12,2)+':'+Copy(t,14,2);
  end;
begin
  XML.XML.Text := HTMLContent (Obex_Dir);
  ListView.Items.Clear;
  with ListView.Items.Add do
  begin
    ImageIndex := 0;
    Caption := '..';
    SubItems.Add(' <DIR>');
    SubItems.Add(''); //
    SubItems.Add('');
  end;

  XML.Active := true;
  root := XML.DocumentElement;
  for i:=0 to root.ChildNodes.Count-1 do
  begin
    tmp:=root.ChildNodes.Nodes[i];
    ListItem := ListView.Items.Add;
    ListItem.Caption := tmp.Attributes['name'];
    if tmp.NodeName ='folderthen
    begin
      ListItem.ImageIndex := 1;
      ListItem.SubItems.Add(' <DIR>');
      ListItem.SubItems.Add('');
    end;
    if tmp.NodeName ='filethen
    begin
      ListItem.ImageIndex := FileImgIndex(ListItem.Caption);
      fSize := tmp.Attributes['size'];
      fSize := StringOfChar(' ',7-Length(fSize))+fSize;
      ListItem.SubItems.Add(fSize);
      ListItem.SubItems.Add(ExtractFileExt(ListItem.Caption)+' Datei');
    end;
    ListItem.SubItems.Add(FrmTimeStr(tmp.Attributes['modified']));
  end;
  XML.Active := false;
  Label2.Caption :=ProductID;
    TntLabel1.Caption := ProductID +':/';
      for I := 0 to PathList.Count - 1 do // Iterate
            begin
        TntLabel1.Caption := TntLabel1.Caption + '/'+ PathList.Strings[I];
end;
end;
Marcel
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Sonderzeichen anzeigen lassen

  Alt 3. Okt 2006, 11:38
Hallo,

sehe ich das richtig, dass Du eine HTML-Seite als XML-Datei lesen willst? Dann darfst Du natürlich ausschließlich den eigentlichen Text escapen und nicht die Markup-Befehle. Wobei ich mich frage, warum Du überhaupt escapen musst. Vielleicht hängst Du 'mal Deine Quelldaten an.

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  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 16:54 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