AGB  ·  Datenschutz  ·  Impressum  







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

Eingelesene Datei in Unicode

Ein Thema von Balosh · begonnen am 13. Mai 2015 · letzter Beitrag vom 13. Mai 2015
Antwort Antwort
Balosh

Registriert seit: 21. Apr 2015
31 Beiträge
 
Delphi 10 Seattle Professional
 
#1

Eingelesene Datei in Unicode

  Alt 13. Mai 2015, 10:58
Hi zusammen,

habe in Delphi ein Suchprogramm geschrieben, das in *.txt, *.pas Dateien nach Stichwörtern sucht diese in einen String reinspeichert und das Ergebnis dann in einer Listbox ausgibt. Mein Problem ist aber das in den *.txt Dateien auch Umlaute stehen und wenn ich nach diesen suche mir das Programm abschmiert da ja *.txt ANSI codiert sind. Meine bisherige Lösung war über den Befehl
Code:
SaveToFile()
und
Code:
TEncoding.Unicode
die Datei umzuschreiben und ab zu speichern. Dies würde ich gerne aber vermeiden und die Codierung der Datei lassen und nur temporär umzuwandeln zum durchsuchen.

Code:
slist.LoadFromFile(Path + Rec.Name);
            with slist do
            begin
              SaveToFile(Path + Rec.Name, TEncoding.Unicode);
            end;
Hat da jemand einen Vorschlag?

Gruß
Balosh

P.S. Bin schlecht im erklären von Problemen also sorry wenn mein Problem schelcht zu verstehen ist. Ich weiß diese Art von Thema gab es hier im Forum schon öfters aber keines konnte mir da weiterhelfen.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

AW: Eingelesene Datei in Unicode

  Alt 13. Mai 2015, 11:14
Mein Problem ist aber das in den *.txt Dateien auch Umlaute stehen und wenn ich nach diesen suche mir das Programm abschmiert da ja *.txt ANSI codiert sind.
Könntest Du "abschmieren" näher erläutern?
Wie auch schon in einem anderen aktuellen Thread diskutiert, kannst Du Dich eigentlich nicht darauf verlassen, daß alle "Textdateien" gleich kodiert sind. (egal ob ANSI,UTF8,UTF16 oder was auch immer)

Geh also noch einmal in Dich und versuche erneut Dein Problem zu beschreiben. der Sourcecode der zum "Abschmieren" führt wäre auch nicht schlecht!

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Eingelesene Datei in Unicode

  Alt 13. Mai 2015, 11:44
TFile.ReadAllBytes, oder so, darauf TEncoding.GetBufferEncoding anwenden und das dann für's Speichern benuzten.

Oder du kopierst eben die Datei (TFile.Copy), anstatt sie sinnlos einzulesen und neu zu speichern,
bzw. liest sie zumindestens nicht in eine TStringList (welche das Encoding ändert), sondern ein Array oder einen Stream.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: Eingelesene Datei in Unicode

  Alt 13. Mai 2015, 12:11
Ich verstehe das Problem noch nicht so wirklich. Die Quelldatei kann ja kodiert sein wie sie mag. Hauptsache, du bekommest es vernünftig in den Speicher (TStrings, String-Array, was auch immer). Dann hast du einen Haufen Strings und kannst darin suchen wie es Spaß macht. Was hierbei abschmieren soll verstehe ich auch nicht.
  Mit Zitat antworten Zitat
Balosh

Registriert seit: 21. Apr 2015
31 Beiträge
 
Delphi 10 Seattle Professional
 
#5

AW: Eingelesene Datei in Unicode

  Alt 13. Mai 2015, 12:43
Oder du kopierst eben die Datei (TFile.Copy), anstatt sie sinnlos einzulesen und neu zu speichern,
bzw. liest sie zumindestens nicht in eine TStringList (welche das Encoding ändert), sondern ein Array oder einen Stream.
An einen Stream habe ich noch gar nicht gedacht. Werde ich gleich mal ausprobieren danke hierfür.
  Mit Zitat antworten Zitat
Antwort Antwort


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 00:54 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