AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Datei als array of byte einlesen

Ein Thema von tofse · begonnen am 30. Okt 2017 · letzter Beitrag vom 6. Nov 2017
Antwort Antwort
Seite 2 von 3     12 3   
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
6.808 Beiträge
 
Delphi 10.3 Rio
 
#11

AW: Datei als array of byte einlesen

  Alt 31. Okt 2017, 10:53
Wie kann ich denn bei TFileStream eine Datei nicht-exklusiv erstellen und öffnen?
Z.B. so: TFileStream.Create(<filename>, fmCreate or fmShareDenyWrite);

Sobald die Datei dann existiert kannst du über TFileStream.Create(<filename>, fmOpenRead or fmShareDenyNone); von anderer Stelle lesend darauf zugreifen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
469 Beiträge
 
Delphi 2009 Professional
 
#12

AW: Datei als array of byte einlesen

  Alt 31. Okt 2017, 12:23
In Delphi 2009 ist fmCreate als $FFFF definiert...
Ich möchte die Datei nur schreiben, nicht lesen.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
6.808 Beiträge
 
Delphi 10.3 Rio
 
#13

AW: Datei als array of byte einlesen

  Alt 31. Okt 2017, 13:36
In Delphi 2009 ist fmCreate als $FFFF definiert...
Ich möchte die Datei nur schreiben, nicht lesen.
Soweit ich weiß, ist in D2009 bei fmCreate der Share-Mode immer 0.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
34.931 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#14

AW: Datei als array of byte einlesen

  Alt 31. Okt 2017, 16:59
Man kann auch problemlos einen eigenen Constructor für TFileStream schreiben
oder nutzt THandleStream mit MSDN-Library durchsuchenCreateFile
und kann da dann machen was man will.

PS: Delphi-Referenz durchsuchenTFile.ReadAllBytes
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (31. Okt 2017 um 17:04 Uhr)
  Mit Zitat antworten Zitat
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
128 Beiträge
 
Delphi XE Professional
 
#15

AW: Datei als array of byte einlesen

  Alt 6. Nov 2017, 13:25

Ich behaupte einfach mal ganz dreist dass, das nicht an meiner Methode liegt.
In dem buffer-Array sollte am Ende von deiner und meiner Methode exakt das gleiche drin stehen.

Und wenn dus schon mit den uralt-Funktionen machst, dann lies bitte nicht jedes Byte einzeln aus der Datei :/
Hallo,
so hat es funktioniert
Delphi-Quellcode:
 datei := TFileStream.Create(FPdf, fmOpenRead);
 try

     SetLength(buffer, datei.Size);
     datei.Read(buffer[1], datei.Size);
 finally
     datei.Free;
 end;
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General
Online

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

AW: Datei als array of byte einlesen

  Alt 6. Nov 2017, 13:50
Hallo,
so hat es funktioniert
Du hast 2 Möglichkeiten:

1) NICHT ZU EMPFEHLEN
Delphi-Quellcode:
datei := TFileStream.Create(FPdf, fmOpenRead);
try
   SetLength(buffer, datei.Size+1); // +1 !
   datei.Read(buffer[1], datei.Size);
finally
   datei.Free;
end;
wenn du schon ab Index 1 einliest, dann muss das Array 1 Byte größer sein oder das letzte Byte steht in der Pampa was böse in die Hose gehen kann.

2) Besser:
Delphi-Quellcode:
datei := TFileStream.Create(FPdf, fmOpenRead);
try
   SetLength(buffer, datei.Size);
   datei.Read(buffer[0], datei.Size);
finally
   datei.Free;
end;
Und du passt deine anderen Methoden zum verarbeiten der PDF an, sodass diese ab buffer[0] anfangen zu lesen und nicht ab buffer[1]!
Das ist nämlich dein wahres Problem
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
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
128 Beiträge
 
Delphi XE Professional
 
#17

AW: Datei als array of byte einlesen

  Alt 6. Nov 2017, 14:09

Und du passt deine anderen Methoden zum verarbeiten der PDF an, sodass diese ab buffer[0] anfangen zu lesen und nicht ab buffer[1]!
Das ist nämlich dein wahres Problem
Ok, habe ich verstanden, geht aber nicht, da nicht von mir.
Deshalb verwende ich die Variante 1

Dennoch danke!
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General
Online

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

AW: Datei als array of byte einlesen

  Alt 6. Nov 2017, 14:18
Aber der Code ist doch vorhanden oder nicht?
Bzw. einer deiner Kollegen o.ä. hat den Code doch geschrieben oder nicht?

Also wenn der Code vorhanden ist dann beheb den Fehler selbst oder sag dem Bescheid der das verbrochen hat.
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
tofse

Registriert seit: 6. Jun 2011
Ort: Saarlouis
128 Beiträge
 
Delphi XE Professional
 
#19

AW: Datei als array of byte einlesen

  Alt 6. Nov 2017, 14:22
Hm, ne.
Das ist eine kommerzielle COM/ActiveX API, ich teste die gerade, bevor wir kaufen.
Ich habe da mal angefragt, wieso das so ist.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
34.931 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#20

AW: Datei als array of byte einlesen

  Alt 6. Nov 2017, 14:32
0 oder 1 ....

Es sei denn Buffer ist ein String/AnsiString



Nja, das "eine" Problem in Post #1 hätte er leicht finden können, indem einfach mal die Bereichsprüfung aktiviert wird.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu ( 6. Nov 2017 um 14:34 Uhr)
  Mit Zitat antworten Zitat
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 17:04 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