AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Filestream Datei nicht gefunden bei FOpenWrite
Thema durchsuchen
Ansicht
Themen-Optionen

Filestream Datei nicht gefunden bei FOpenWrite

Ein Thema von EWeiss · begonnen am 28. Mär 2017 · letzter Beitrag vom 28. Mär 2017
Antwort Antwort
Seite 1 von 3  1 23      
EWeiss
(Gast)

n/a Beiträge
 
#1

Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 05:52
Delphi-Quellcode:
          if (FileExists(FileOne)) then
          begin
            GetImageSizeFromFile(FileOne, Width, Height);
            FileStream := TFileStream.Create(FileOne, fmOpenRead);

            if FileStream.Handle <> INVALID_HANDLE_VALUE then
            begin
              BufferSize := FileStream.Size;
              SetLength(sBuffer, BufferSize);

              FileStream.Read(sBuffer[0], BufferSize);
              if Assigned(sBuffer) then
              begin
                Offset := BufferSize + 1;
                FileStream.Free;

                FileStream := TFileStream.Create(FileOut, fmOpenWrite);
Compiler meldet Datei nicht gefunden..
Logisch die will ich doch mit

TFileStream.Create(FileOut, fmOpenWrite);

erst erstellen.
Hab ich da nen Denk Fehler ?

Mit
CreateFile(PWideChar(FileOut), GENERIC_WRITE, 0, nil, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0);

funktioniert es mit dem FileStream aber nicht.


gruss
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#2

AW: Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 06:00

Compiler meldet Datei nicht gefunden..
Der Compiler?

Probiere es mal mit fmCreate.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#3

AW: Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 06:03

Compiler meldet Datei nicht gefunden..
Der Compiler?

Probiere es mal mit fmCreate.
Ah danke versuche es mal.
Nur kann man dann noch schreiben ?

EDIT:
Ach ich mache es mit der API.
Zuviel Stress jetzt


gruss

Geändert von EWeiss (28. Mär 2017 um 06:06 Uhr)
  Mit Zitat antworten Zitat
Lemmy

Registriert seit: 8. Jun 2002
Ort: Berglen
2.366 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 06:06
Ah danke versuche es mal.
Nur kann man dann noch schreiben ?
versuch es... oder vielleicht doch mal die Hilfe anschauen?
http://docwiki.embarcadero.com/Libra...eStream.Create
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 06:07
Ah danke versuche es mal.
Nur kann man dann noch schreiben ?
versuch es... oder vielleicht doch mal die Hilfe anschauen?
http://docwiki.embarcadero.com/Libra...eStream.Create
Ach lass mal sagte ja schon mache es mit der API jetzt.
Aber auf deinen Tip wäre ich nicht gekommen.

Thema hat sich erledigt!
Habe es mit Win32 API mitteln gemacht.

gruss

Geändert von EWeiss (28. Mär 2017 um 09:02 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 10:57
Ach lass mal
Dabei steht dort sogar das Warum.

fmCreate erstellt eine neue Datei und überschreibt notfalls eine Besehende.
fmOpenWrite öffnet eine bestehende Datei und löscht dabei den Inhalt.

Und genau das selbe Problem hat man auch mit der WinAPI, wenn man da eben statt CREATE_ALWAYS (fmCreate) ein TRUNCATE_EXISTING (fmOpenWrite) verwendet.
Zitat:
mache es mit der API jetzt
Ist also keine Lösung, wenn man dort den selben Fehler machen würde.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (28. Mär 2017 um 11:00 Uhr)
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 11:24
Zitat:
Ist also keine Lösung, wenn man dort den selben Fehler machen würde.
Habe ich aber nicht da ich mich mit der API auskennen im Gegensatz zu FileStream.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

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

AW: Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 12:35
Zitat:
Ist also keine Lösung, wenn man dort den selben Fehler machen würde.
Habe ich aber nicht da ich mich mit der API auskennen im Gegensatz zu FileStream.

gruss
Jetzt weißt du ja wies mim FileStream geht
Verstehe dich nicht so ganz. Die API ist ein ganzes Stück komplizierter und unbequemer.
Du musst natürlich selbst wissen wie du gerne programmieren möchtest aber die direkte Nutzung der Windows API ist eigentlich nur selten notwendig.
Mit den Klassen oder Funktionen der RTL wird dein Code deutlich einfacher und übersichtlicher und diese Klassen sind grundlegend einfacher zu benutzen als die APIs.
Mit ein wenig Einarbeitung könntest du dir theoretisch ne Menge Arbeit/Ärger sparen
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
Benutzerbild von himitsu
himitsu

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

AW: Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 12:44
OK, die alten Konstanten haben ein paar Nachteile, gegenüber aktuelleren Implementationen mit Enums.

Oder man nimmt die aktuellere API http://docwiki.embarcadero.com/Libra....TFile_Methods
TFile.Exists
TFile.Create
TFile.Open
TFile.OpenRead
TFile.OpenWrite (fmOpenWrite)
TFile.Delete

TFile.AppendText
TFile.OpenText
TFile.ReadAllLines
TFile.ReadAllText

TFile.ReadAllBytes, wobei hier bestimmt eine Variante mit Offset+Länge auch ganz nett wäre. (kann man sich aber über Class Helper nachrüsten, wenn Emba das nicht hinbekommt)

uvm.


PS: API?
Windows-API (z.B. Win32 ... heißt unter 64 Bit genauso, da die selben Schnittstellen ... WinRT wäre eine andere Windows-API)
Delphi-API (z.B. RTL)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (28. Mär 2017 um 14:11 Uhr)
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
930 Beiträge
 
#10

AW: Filestream Datei nicht gefunden bei FOpenWrite

  Alt 28. Mär 2017, 12:54
Läuft doch alles auf's gleiche raus.
Wenn ich bei der API oder bei TFile die falsche Funktion/Parameter nehme, geht's halt nicht/kommt ne Exception.

Und, soooo kompliziert ist TFileStream je nun auch nicht.

In Anbetracht des obigen Codes wäre das ein Parameter zu ändern gewesen. Somit verstehe ich die ganze Diskussion nicht.

Geändert von Hobbycoder (28. Mär 2017 um 12:57 Uhr)
  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 18:45 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