Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   XML (https://www.delphipraxis.net/46-xml/)
-   -   Delphi Sonderzeichen anzeigen lassen (https://www.delphipraxis.net/78323-sonderzeichen-anzeigen-lassen.html)

Gehstock 3. Okt 2006 10:11


Sonderzeichen anzeigen lassen
 
[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]

xaromz 3. Okt 2006 10:19

Re: Sonderzeichen anzeigen lassen
 
Hallo,

ab dem zweiten StringReplace mut Du natrlich 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

Cster 3. Okt 2006 10:22

Re: Sonderzeichen anzeigen lassen
 
In der ersten wegkommentierten Zeile msstest du nicht s, sondern result schreiben.

Ich wei aber nicht, ob das das Problem lst, weil du uns noch nicht verraten hast, warum das nicht klappt. Was passiert denn?

Gehstock 3. Okt 2006 10:24

Re: Sonderzeichen anzeigen lassen
 
Liste der Anhnge anzeigen (Anzahl: 1)
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

xaromz 3. Okt 2006 10:27

Re: Sonderzeichen anzeigen lassen
 
Hallo,

ist das Dein Output oder Dein Input?

Gru
xaromz

Gehstock 3. Okt 2006 10:29

Re: Sonderzeichen anzeigen lassen
 
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='.3gp' then Result := 3 else
      if Ext='.bmp' then Result := 4 else
      if Ext='.bmx' then Result := 5 else
      if Ext='.css' then Result := 6 else
      if Ext='.hfi' then Result := 7 else
      if Ext='.gif' then Result := 8 else
      if Ext='.html' then Result := 9 else
      if Ext='.imy' then Result := 10 else
      if Ext='.jpg' then Result := 11 else
      if Ext='.mid' then Result := 12 else
      if Ext='.mmc' then Result := 13 else
      if Ext='.mmf' then Result := 14 else
      if Ext='.mp3' then Result := 15 else
      if Ext='.mp4' then Result := 16 else
      if Ext='.png' then Result := 17 else
      if Ext='.srt' then Result := 18 else
      if Ext='.svg' then Result := 19 else
      if Ext='.tiff' then Result := 20 else
      if Ext='.vmg' then Result := 21 else
      if Ext='.wav' then Result := 22 else
      if Ext='.wbmp' then Result := 23 else
      if Ext='.xhtml' then Result := 24 else
    if Ext='.xls' then Result := 25 else
      if Ext='.der' then Result := 26 else
      if Ext='.doc' then Result := 27 else
      if Ext='.dat' then Result := 28 else
      if Ext='.jar' then Result := 29 else
      if Ext='.pdf' then Result := 30 else
      if Ext='.txt' then Result := 31 else
      if Ext='.jad' then 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 ='folder' then
    begin
      ListItem.ImageIndex := 1;
      ListItem.SubItems.Add('      <DIR>');
      ListItem.SubItems.Add('');
    end;
    if tmp.NodeName ='file' then
    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;

xaromz 3. Okt 2006 10:38

Re: Sonderzeichen anzeigen lassen
 
Hallo,

sehe ich das richtig, dass Du eine HTML-Seite als XML-Datei lesen willst? Dann darfst Du natrlich ausschlielich den eigentlichen Text escapen und nicht die Markup-Befehle. Wobei ich mich frage, warum Du berhaupt escapen musst. Vielleicht hngst Du 'mal Deine Quelldaten an.

Gru
xaromz


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 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