Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Text aus Datei laden, Single Quote Problem (https://www.delphipraxis.net/201035-text-aus-datei-laden-single-quote-problem.html)

gast2019 19. Jun 2019 04:24

AW: Text aus Datei laden, Single Quote Problem
 
Zitat:

Zitat von DieDolly (Beitrag 1434912)
Genau genommen ist es eine INI-Datei. Dort stehen Worte und Sätze so drin, wie sie in der jeweiligen Sprache geschrieben werden. Also kein Escapen oder so.
\' und '''' in der INI-Datei, wie man es bei PHP zum Beispiel macht, habe ich schon versucht.

Zeig doch mal eine Zeile der INI-Datei, die Ärger macht.

DieDolly 19. Jun 2019 10:51

AW: Text aus Datei laden, Single Quote Problem
 
Nicht die Datei macht ärger sondern einzelne Werte da drin. Beispiele stehen schon im ersten Beitrag.

Das Problem wurde aber schon gehoben. WrapText kam mit dem ' nicht klar. Schade, dass ich jetzt alle ' erst verdoppel muss, nur um sie danach wieder zu normalisieren.

p80286 19. Jun 2019 12:47

AW: Text aus Datei laden, Single Quote Problem
 
Zitat:

Zitat von DieDolly (Beitrag 1435013)
Nicht die Datei macht ärger sondern einzelne Werte da drin. Beispiele stehen schon im ersten Beitrag.

Das Problem wurde aber schon gehoben. WrapText kam mit dem ' nicht klar. Schade, dass ich jetzt alle ' erst verdoppel muss, nur um sie danach wieder zu normalisieren.

Na dann ist ja gut. Das Verdoppeln kannst Du ja beim Einlesen erledigen.
Mein Hinweis aus #19 wenn ein Zeichen z.b. ' angezeigt/gedruckt wird, dann kann es sich um ein "falsches" Zeichen
handeln.
Siehe hierzu https://de.wikipedia.org/wiki/Apostroph oder https://de.wikipedia.org/wiki/ISO_8859

So wurdenz.B. die {} in TP Sourcen auf CP/M Rechnern als Ü Ö angezeigt. Diesen Effekt kann man sich zu Nutze machen indem man ein Zeichen nutzt, das zwar aussiht wie ein Hochkomma aber einen anderen Wert bestzt.

Gruß
K-H

Amateurprofi 19. Jun 2019 13:28

AW: Text aus Datei laden, Single Quote Problem
 
Zitat:

Zitat von DieDolly (Beitrag 1435013)
Nicht die Datei macht ärger sondern einzelne Werte da drin. Beispiele stehen schon im ersten Beitrag.

Das Problem wurde aber schon gehoben. WrapText kam mit dem ' nicht klar. Schade, dass ich jetzt alle ' erst verdoppel muss, nur um sie danach wieder zu normalisieren.

Na ja, WrapText kommt mit dem ' schon klar.
Wie schon von Uwe weiter oben deutlich gemacht, setzt WrapText keinen Break innerhalb von Quotes ( ' oder " ).
Jetzt stößt WrapText in "Deinem" Text auf ein Quote.
Da er innerhalb von Quotes kein Break setzen darf, sucht er das nächste Quote, in der Absicht den in ' stehenden Teil zu überspringen. Das wird dann aber bei "Deinen" Texten i.d.R. nicht gefunden.
Also nicht "WrapText kommt nicht klar" sondern "Du benutzt eine Funktion für etwas, für das sie nicht gemacht ist".

Vielleicht wäre es besser, ein eigenes WrapText zu verwenden, das Quotes nicht als Ein-/Ausleitung eines Textteils betrachtet sondern so behandelt, wie alle anderen Zeichen.
Zum Beispiel so:
(Auf die Schnelle getippt und nicht ausgiebig getestet).
Delphi-Quellcode:
FUNCTION WrapText(const Line,BreakStr:String; const BreakChars:TSysCharSet;
                  MaxCol:Integer):String;
var I,J,K,Len:Integer;
begin
   Len:=Length(Line);
   if Len<=MaxCol then Exit(Line);
   Result:='';
   I:=1;
   J:=MaxCol;
   repeat
      K:=J;
      while (J>I) and not CharInSet(Line[J],BreakChars) do Dec(J);
      if J=I then begin
         J:=K;
         while (J<Len) and not CharInSet(Line[J],BreakChars) do Inc(J);
      end;
      // J zeigt auf Break oder auf letztes Zeichen in Line
      if Result<>'' then Result:=Result+BreakStr;
      Result:=Result+Copy(Line,I,J-I+1);
      I:=J+1;
      Inc(J,MaxCol);
   until J>=Len;
   if I>Len then Exit;
   if Result<>'' then Result:=Result+BreakStr;
   Result:=Result+Copy(Line,I,MaxInt);
end;

Luckie 19. Jun 2019 17:24

AW: Text aus Datei laden, Single Quote Problem
 
Um es noch mal an einem Beispiel zu verdeutlichen:
Zitat:

don't ganz viel Text ohne Hochkomata can't
Wraptext deutet jetzt alles von 't ganz viel Text ohne Hochkomata can' als wörtliche Rede und bricht innerhalb nicht um.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:34 Uhr.
Seite 3 von 3     123   

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