AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Text aus Datei laden, Single Quote Problem

Text aus Datei laden, Single Quote Problem

Ein Thema von DieDolly · begonnen am 17. Jun 2019 · letzter Beitrag vom 19. Jun 2019
Antwort Antwort
Seite 1 von 2  1 2   
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#1

Text aus Datei laden, Single Quote Problem

  Alt 17. Jun 2019, 21:00
Ich lese Text aus einer Datei, der dann in meinem Programm angezeigt wird.
Das klappt gut bis zu dem, Zeitpunkt, wenn ein zu ladener String einen Quote enthält wie er in England oder Frankreich benutzt wird

Zitat:
Bli b'la blub
Zitat:
Don't
Ich kann das ins Programm laden und es gibt keinen Fehler. Aber ein so in eine Variable geschriebener Satz in einem MessageDlg erzeugt keinen Umbruch nach den Windows typischen 60 bis 70 Zeichen.

Gibt es irgendeine Delphi- oder Windowsfunktion, sodass der Quote in er Textdatei nicht escaped werden muss und in Delphi trotzdem korrekt interpretiert wird?

Geändert von DieDolly (17. Jun 2019 um 21:36 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#2

AW: Text aus Datei laden, Single Quote Problem

  Alt 17. Jun 2019, 23:40
Ich lese Text aus einer Datei, der dann in meinem Programm angezeigt wird.
Wie denn genau?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#3

AW: Text aus Datei laden, Single Quote Problem

  Alt 18. Jun 2019, 10:17
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.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.629 Beiträge
 
Delphi 12 Athens
 
#4

AW: Text aus Datei laden, Single Quote Problem

  Alt 18. Jun 2019, 10:20
Die Frage ist: Wie liest du den Text aus der Datei? Es gibt einen ganzen Haufen von Möglichkeiten und jede hat ihre Eigenarten.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#5

AW: Text aus Datei laden, Single Quote Problem

  Alt 18. Jun 2019, 10:25
Hier ein Beispiel
Delphi-Quellcode:
function ReadValue(const AIniFile: TMemIniFile; const Section, Ident: string): string;
begin
 Result := UTF8ToWideString(AIniFile.ReadString(Section, Ident, ''));
end;

LIni := TMemIniFile.Create(LanguageFile);
try
 String123456 := ReadValue(LIni, 'section', 'ident');
finally
 LIni.Free;
end;
Ich jage alles durch ReadValue, um doppelten Code zu vermeiden. UTF8ToWideString steht da, da sonst Umlaute nicht richtig angezeigt werden.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Text aus Datei laden, Single Quote Problem

  Alt 18. Jun 2019, 10:26
@Dolly: Wenn ich dich richtig verstehe ist nicht das einlesen das Problem (der eingelesene Text entspricht 1:1 dem was du aus der Datei erwartest), sondern die spätere Verarbeitung wenn ein
Code:
'
im Text auftaucht. Richtig?

Wäre es dann nicht eine Option die
Code:
'
durch Leerzeichen zu ersetzen (z.B. mittels Stringreplace)?
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#7

AW: Text aus Datei laden, Single Quote Problem

  Alt 18. Jun 2019, 10:32
Das Ergebnis stimmt. Aber intern passiert irgendwas bzw passiert irgendwas nicht denn in einem Message Dialog wird die Zeile nicht mehr automatisch umgebrochen, wenn ein ' im String ist. Wenn ich den String hardcoded selbst reinschreibe und '' statt ' verwende klappt alles. Aber ein '' in der Ini-Datei bringt nicht das Resultat wie der hardcoded string.

Durch Leerzeichen ersetzen ist nicht machbar. Es handelt sich um Übersetzungen.
  Mit Zitat antworten Zitat
gast2019
(Gast)

n/a Beiträge
 
#8

AW: Text aus Datei laden, Single Quote Problem

  Alt 19. Jun 2019, 04:24
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.
  Mit Zitat antworten Zitat
DieDolly

Registriert seit: 22. Jun 2018
2.175 Beiträge
 
#9

AW: Text aus Datei laden, Single Quote Problem

  Alt 19. Jun 2019, 10:51
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.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Text aus Datei laden, Single Quote Problem

  Alt 19. Jun 2019, 12:47
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
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:10 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz