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 3  1 23   
DieDolly

Registriert seit: 22. Jun 2018
951 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
6.807 Beiträge
 
Delphi 10.3 Rio
 
#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
951 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
6.807 Beiträge
 
Delphi 10.3 Rio
 
#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
951 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
204 Beiträge
 
Delphi 10.3 Rio
 
#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
951 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
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.029 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#8

AW: Text aus Datei laden, Single Quote Problem

  Alt 18. Jun 2019, 10:38
MessageDlg('Test und don''t und son ein mustn''t und bla und Test aber auch ein Test ist mit einem ''Test'' sehr don''t', mtInformation, [mbOK], 0);



Hab damit keine Probleme
Miniaturansicht angehängter Grafiken
dlg.png  
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
DieDolly

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

AW: Text aus Datei laden, Single Quote Problem

  Alt 18. Jun 2019, 10:39
Du hast den Text ja auch hardcoded im Programm drin.

Ließ genau diesen aus einer Ini-Datei aus. Das Ergebnis sollte ein anderes sein.

Geändert von DieDolly (18. Jun 2019 um 10:43 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.029 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#10

AW: Text aus Datei laden, Single Quote Problem

  Alt 18. Jun 2019, 10:42
Bei mir das gleich Ergebnis:
Delphi-Quellcode:
procedure TForm3.FormCreate(Sender: TObject);
var ini: TIniFile;
    str: String;
begin
  ini := TIniFile.Create('D:\Test123.ini');
  try
// ini.WriteString('TEST', 'Str', 'Test und don''t und son ein mustn''t und bla und Test aber auch ein Test ist mit einem ''Test'' sehr don''t');

    str := ini.ReadString('TEST', 'Str', '');
   // str := UTF8ToWideString(ini.ReadString('TEST', 'Str', '')); <--- geht auch
    MessageDLg(Str, mtInformation, [mbOK], 0);
  finally
    ini.Free;
  end;
end;
Miniaturansicht angehängter Grafiken
dlg.png  
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."

Geändert von Neutral General (18. Jun 2019 um 10:44 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23   

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 21:40 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf