AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Datei mit Steuerzeichen in StringList laden?
Thema durchsuchen
Ansicht
Themen-Optionen

Datei mit Steuerzeichen in StringList laden?

Ein Thema von SneakyBagels · begonnen am 4. Jul 2017 · letzter Beitrag vom 4. Jul 2017
Antwort Antwort
Seite 1 von 3  1 23      
SneakyBagels
(Gast)

n/a Beiträge
 
#1

Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 08:16
Ist es möglich mit einer normalen StringList (oder etwas anderem was bei Delphi dabei ist) eine Datei die die, die man in folgendem Verzeichnis findet in einen String zu laden?
Ziel ist es: ich möchte einen SubString in der Datei finden und dafür keine extra 3rd Party Unit verwenden.

=> C:\Users\<name>\AppData\Roaming\Microsoft\Windows\ Recent\CustomDestinations
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 08:34
Es ist alles möglich.
Delphi-Quellcode:
program Project1;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  System.Classes;

var
  Stream: TStringStream;
  filename: string;
begin
  try
    filename := 'C:\Users\Horst\AppData\Roaming\Microsoft\Windows\Recent\CustomDestinations\e0e944739d076ab.customDestinations-ms';

    Stream := TStringStream.Create;
    Stream.LoadFromFile(filename);
    Writeln(Stream.DataString);
    Stream.Free;
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#3

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 08:40
An Streams habe ich noch nicht gedacht.
Leider ist bei mir DataString immer leer. Selbst wenn die Datei offensichtlich eine Größe > 0Byte hat.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 09:13
Ist es möglich mit einer normalen StringList (oder etwas anderem was bei Delphi dabei ist) eine Datei die die, die man in folgendem Verzeichnis findet in einen String zu laden?
Ist es: TFile.ReadAllText
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 09:25
An Streams habe ich noch nicht gedacht.
Leider ist bei mir DataString immer leer. Selbst wenn die Datei offensichtlich eine Größe > 0Byte hat.
Wie groß ist denn Stream.Size nach dem laden?
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#6

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 09:32
Zitat:
TFile.ReadAllText
Auch TFile.ReadAllText hat Probleme mit den .customDestinations-ms-Dateien und zeigt keinen Inhalt an (showmessage)

Zitat:
Wie groß ist denn Stream.Size nach dem laden?
Das weiß ich nicht ich habe wieder alles gelöscht was mit Streams zu tun hatte. Es war vermutlich aber 0.

Zum Vergleich: diese Unit schafft es die Dateien zu lesen
http://www.delphipraxis.net/151898-s...ei-reader.html

Geändert von SneakyBagels ( 4. Jul 2017 um 09:34 Uhr)
  Mit Zitat antworten Zitat
TiGü

Registriert seit: 6. Apr 2011
Ort: Berlin
3.060 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 09:49
Das weiß ich nicht ich habe wieder alles gelöscht was mit Streams zu tun hatte. Es war vermutlich aber 0.
Das Öffnen der IDE dauert in der Regel länger als das einkopieren meines Quelltextes, die Anpassung des Pfades und das Drücken von F9.
So debugge er es hin!
  Mit Zitat antworten Zitat
SneakyBagels
(Gast)

n/a Beiträge
 
#8

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 10:01
Size ist nicht 0.
Size entspricht der Dateigröße in Bytes.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 10:01
Zitat:
TFile.ReadAllText
Auch TFile.ReadAllText hat Probleme mit den .customDestinations-ms-Dateien und zeigt keinen Inhalt an (showmessage)
Das liegt dann wohl daran, daß das eben keine reinen Textdateien sind und das erste 0-Byte den String terminiert. In dem Fall würde ich dann TFile.ReadAllBytes empfehlen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: Datei mit Steuerzeichen in StringList laden?

  Alt 4. Jul 2017, 10:03
Haben wir denn eine konkrete Beispiel-Datei? Wenn ich mitten in eine "Text"-Datei ein Nullbyte reinpacke hat ReadAllText damit kein Problem:

Delphi-Quellcode:
uses
   System.SysUtils,
   System.Classes,
   System.IoUtils;
const
   filePath = 'x:\someFile.dat';
   DLE = 16;
   NULL = 0;
var
   bytes: TBytes;
   stream: TStream;
   fileContent: String;
begin
   // 1) Datei schreiben
   TFile.WriteAllText(filePath, 'Vor Steuerzeichen');
   bytes := [DLE, NULL];
   stream := TFile.OpenWrite(filePath);
   try
        stream.Seek(0, TSeekOrigin.soEnd);
      stream.Write(bytes, 2);
   finally
      stream.Destroy();
   end;
   TFile.AppendAllText(filePath, 'Nach Steuerzeichen');

   // 2) Datei lesen (einfach)
   fileContent := TFile.ReadAllText(filePath);
   WriteLn( fileContent.QuotedString());

   ReadLn;
end.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 12:53 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