AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Lazarus Fehler beim lesen einer Textdatei

Ein Thema von foerster7892 · begonnen am 28. Sep 2011 · letzter Beitrag vom 5. Okt 2011
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#11

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 1. Okt 2011, 14:15
Zitat:
Buchentschlüsslung
Vonwegen keine Umlaute und so.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#12

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 1. Okt 2011, 21:25
Das einzig interessante war, dass ich das erste Mal die Datei, welche ich per Notepad++ auf c:\ angelegt hatte, nicht öffnen konnte; die Datei war auch im Explorer nicht sichtbar, aber im Öffnen-Dialog von Notepad++.
Ein normales Programm hat in C:\ und C:\Programme, C:\Windows, ... usw. eigentlich keine Schreibrechte, darum hat Windows diesen Schreibzugriff des Notepad++ virtuell umgeleitet.
Stichwort: VirtualStore

Da dein/dieses Programm scheinbar "schrottig" programmiert wurde, weil es versucht in Verzeichnisse zu schreiben, wo es nicht reinschreiben darf und da es nicht als Vista/Win7-Kompatibel deklariert ist, versucht Windows dennoch diese Schreibzugriffe virtuell (nur für dieses) zu erlauben, damit es nicht verreckt, wie z.B. viele andere Programme, welche dämlicher Weise immernoch versuchen in C:\Programme reinzuschreiben und damit eigentlich nicht mehr funktionieren würden, obwohl man ja eigentlich schon seit WinNT/2000 dort nicht reinschreiben sollte.
(Ob du absichtlich oder das Programm "ausversehn" diesen Speicherplatz ausgesucht hat, ist für Windows ja nicht erkennbar)[/delphi]
Danke für die Erklärung, aber mir war durchaus bewusst, dass der Virtual Store existiert und was er bewirkt (ich hatte dem ja sogar bereits die Schuld in die Schuhe geschoben). Ich war zu dem Zeitpunkt nur etwas überrascht, dass er auch tatsächlich angeschlagen hat.

C:\Users\MeinName\Desktop\Buchentschlüsslung\Zahle nfolgen\zahlenfolge3.txt
Nutze Utf8ToAnsi bzw. Utf8ToSys , wenn du einen String von der LCL an eine Funktion/Methode in der RTL bzw. FCL übergibst, dann passieren dir solche Probleme nicht (umgekehrt gilt das übrigens auch, da musst du jedoch AnsiToUtf8 bzw. SysToUtf8 verwenden).

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.183 Beiträge
 
Delphi 12 Athens
 
#13

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 2. Okt 2011, 08:09
TStringList nutzt doch hoffentlich CreateFileW und wandelt seine UTF-8-Strings selber um?

Statt dem älternen AssignFile könnte/sollte man sich dann vielleicht doch mal mit TStringList anfreunden.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von JamesTKirk
JamesTKirk

Registriert seit: 9. Sep 2004
Ort: München
604 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Lazarus Fehler beim lesen einer Textdatei

  Alt 5. Okt 2011, 13:46
TStringList nutzt doch hoffentlich CreateFileW und wandelt seine UTF-8-Strings selber um?

Statt dem älternen AssignFile könnte/sollte man sich dann vielleicht doch mal mit TStringList anfreunden.
Selbst wenn TStringList CreateFileW nutzen würde (tut es nicht, am Ende der Kette steht ein CreateFileA ), würde das nichts nutzen, da per Definition die Units aus der RTL und der FCL die systemspezifische Kodierung verwenden. Unter Linux kann dies durchaus UTF-8 sein, aber zum Beispiel auf einem deutschen Windows ist dies CP1252. Das würde also bei der hypothetischen Verwendung von CreateFileW bedeuten, dass irgendwo in der Aufrufkette von LoadFromFile hinunter zu CreateFileW eine Ansi -> UTF-16 Konvertierung stattfinden würde und dann wären deine UTF-8-Zeichen nur noch Müll.

Gruß,
Sven
Sven
[Free Pascal Compiler Entwickler]
this post is printed on 100% recycled electrons
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 01:52 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