AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi TFileStream.Create: nicht unter Win2k?
Thema durchsuchen
Ansicht
Themen-Optionen

TFileStream.Create: nicht unter Win2k?

Ein Thema von Gina · begonnen am 23. Dez 2004 · letzter Beitrag vom 25. Dez 2004
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: TFileStream.Create: nicht unter Win2k?

  Alt 23. Dez 2004, 21:10
Sind Leerzeichen im Pfad, dann musst du ihn in Hochkomata einschließen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#12

Re: TFileStream.Create: nicht unter Win2k?

  Alt 23. Dez 2004, 21:10
Moin!

Füge ansonsten mal dem fmOpenRead noch ein "Or fmShareDenyNone" hinzu.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#13

Re: TFileStream.Create: nicht unter Win2k?

  Alt 23. Dez 2004, 22:24
@ Dax: Ich benutze den IE. Ist aber nicht so wild. Sobald ich nix anderes offen habe, bekomme ich die Sachen auch angezeigt... Liegt wohl an SP2 oder woran auch immer...

@ Luckie: Hab versucht, Hochkommata hinzuzufügen, aber irgendwie stelle ich mich dabei wohl zu blond an Jetzt sagt er mir, dass die Syntax für Dateinamen oder Pfade nicht stimmen würde. Wie genau muss ich die reinsetzen please?

@ Muetze1: Ok, das hab ich auch noch hinzu gefügt. Dazu hab ich gleich mal ne Frage: Laut Delphi-Hilfe ist dieser Parameter optional, zusätzlich und auf Windowssystemen würde er ignoriert werden. Andererseits sehe ich öfter, dass er durch OR verknüpft angegeben wird. Kannst du mir das mal please erklären?

Das Ergebnis der abgeänderten Version werd ich bestimmt erst morgen bekommen.
Also vielen lieben Dank allen erstmal, Gina.
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 31. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#14

Re: TFileStream.Create: nicht unter Win2k?

  Alt 23. Dez 2004, 22:29
Zitat von Luckie:
Sind Leerzeichen im Pfad, dann musst du ihn in Hochkomata einschließen.
meinst du etwa so ?

Delphi-Quellcode:
Var MyFS:TFileStream;

Procedure DoFileOp(Datei:String);
begin
Try
  myFS:=TFileStream.Create(Datei,fmopenRead);
  try
    // mach was mit dem Stream...
  finally
    myFS.Free;
  end;
Except
  ShowMessage(SysErrorMessage(GetLastError));
end;
end;

DoFileOp('"C:\Dokumente und Einstellungen\The-X\Daten.txt"');
sie sagt doch er bekommt den Dateinamen von einem ShellTreeView etc
und nicht über ParamStr(1) z.b.
[edit] ein ' vergessen [/edit]
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#15

Re: TFileStream.Create: nicht unter Win2k?

  Alt 23. Dez 2004, 22:55
Zitat von The-X:
sie sagt doch er bekommt den Dateinamen von einem ShellTreeView etc
und nicht über ParamStr(1)
Ja und? Kein Grund dass man trotzdem eventuell Hochkomata braucht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von The-X
The-X

Registriert seit: 31. Aug 2003
Ort: Woffelsbach / user.exe ;)
377 Beiträge
 
Delphi 7 Personal
 
#16

Re: TFileStream.Create: nicht unter Win2k?

  Alt 23. Dez 2004, 23:03
Ähm so weit ich weiss werden die " nur bei der Parameterübergabe benutzt
oder machst du bei jeder Procedure die eine Datei öffnet

foo('"'+Dateiname+'"'); ?

kleines Beispiel:
Memo1.Lines.LoadFromFile('"C:\BOOT.INI"'); führt nämlich genau DAZU:
Zitat:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EFOpenError with message 'Cannot open file "C:\Programme\Borland\Delphi7\Projects\"C:\BOOT.IN I"". Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Desweiteren darf das Zeichen " garnicht in Dateinamen vorkommen, wie du leicht feststellen wirst wenn du eine Datei umbenennen willst z.b. Neuer-17"-TFT.txt (siehe Anhang)
Miniaturansicht angehängter Grafiken
invalid_160.jpg  
WGET ftp://root@fbi.us.gov/secret/worldreign.exe <- damit werde ich die Weltherrschaft an mich reissen!
=> irc://irc.quakenet.eu.org:6667/delphi.de da werden Sie auch (manchmal) geholfen
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#17

Re: TFileStream.Create: nicht unter Win2k?

  Alt 23. Dez 2004, 23:24
Genau die Fehlermeldung bekomme ich auch Es ist echt zum Mäusemelken...

Aber unabhängig davon dürfte es ohne Hochkommata doch kein Problem sein, wenn keine Leerzeichen im Pfad vorkommen, oder?

Ich glaub ich geh erstmal ins Bettchen. Vielleicht träum ich ja was passendes...

Danke vielmals, Gina.
  Mit Zitat antworten Zitat
supermuckl

Registriert seit: 1. Feb 2003
1.340 Beiträge
 
FreePascal / Lazarus
 
#18

Re: TFileStream.Create: nicht unter Win2k?

  Alt 23. Dez 2004, 23:26
macht mal die gänsefüßchen da weg
Das echte Leben ist was für Leute...
... die im Internet keine Freunde finden!
  Mit Zitat antworten Zitat
Muetze1
(Gast)

n/a Beiträge
 
#19

Re: TFileStream.Create: nicht unter Win2k?

  Alt 23. Dez 2004, 23:57
Moin!

Zitat von Gina:
@ Muetze1: Ok, das hab ich auch noch hinzu gefügt. Dazu hab ich gleich mal ne Frage: Laut Delphi-Hilfe ist dieser Parameter optional, zusätzlich und auf Windowssystemen würde er ignoriert werden. Andererseits sehe ich öfter, dass er durch OR verknüpft angegeben wird. Kannst du mir das mal please erklären?

Das Ergebnis der abgeänderten Version werd ich bestimmt erst morgen bekommen.
Also vielen lieben Dank allen erstmal, Gina.
Der Parameter ist optional - du hast ihn ja z.B. weggelassen und ich habe diese Option genutzt und dir vorgeschlagen dieses auch zu nutzen... *g*. Grundsätzlich wird er eigentlich gerade auf Windowssystemen genutzt anstatt ignoriert. Damit kannst du die Zugriffsteuerung festlegen wie er sich verhalten soll, wenn schon ein anderes Programm auf die Datei zugreift. Mit den anderen Share Optionen (fmShareDenyWrite) kannst du z.B. zusätzlich festlegen (wenn du eine Datei öffnest), dass Schreibzugriffe von anderen Prozessen verboten werden (so lange du die Datei offen hast). Durch solche Angaben kannst du dann sicher sein, dass die Datei nicht verändert wird. Die anderen Processe bekommen bei dem Versuch diese Datei zum Schreiben zu öffnen einen Fehler. Ich habe vermutet das die ShellListView diese Datei offen hält, weil es das Icon ausgelesen hat bzw. ausliest. Daher dieser Versuch mit der Angabe, dass du keine anderen Zugriffe auf die Datei verwehrst.

Und das mit OR ist eine einfach logische Verknüpfung, da diese Konstanten meist Bits wiederspiegeln. Näheres dazu findest du im Tafelwerk, in der Online Hilfe oder im Internet (logische Operationen). Auch hier im Board sollte sich dazu was finden lassen.

MfG
Muetze1
  Mit Zitat antworten Zitat
Benutzerbild von Gina
Gina

Registriert seit: 23. Dez 2004
Ort: Berlin
161 Beiträge
 
Delphi 6 Professional
 
#20

Re: TFileStream.Create: nicht unter Win2k?

  Alt 24. Dez 2004, 14:48
Hallo,

achso, dann habe ich das in der Delphi-Hilfe völlig falsch verstanden. Ich dachte der Parameter Rights wäre fmShareDenyNone etc.

Ich hätte diesen Abschnitte wohl noch ein paar Mal mehr lesen sollen:
Zitat:
Der Parameter Mode steuert, auf welche Art die Datei geöffnet wird. Der Parameter besteht aus zwei Elementen: Eines beschreibt das Öffnen, und eines legt den Modus für den gemeinsamen Zugriff fest. Beide Elemente werden durch ein logisches ODER verknüpft.
Vielen Dank für die Erleuchtung...

Das logische ODER an sich ist mir bekannt. Wie gesagt, ich dachte das wäre der zweite Parameter, den man ja durch Komma getrennt angibt und hab mich deshalb über das Or gewundert.

Zum Öffnen-Problem:

Ich habe heute ein neues Projekt gemacht und nach und nach die einzelnen Teile eingebaut. Und was soll ich sagen? Bisher fehlerfrei bei meinem Tester. Dann liegt das Problem also nicht an dem fmOpenRead, sondern irgendwo völlig versteckt...

Damit wird die Fehlersuche wohl noch etwas dauern.

Vielen lieben Dank für Eure Hilfe. Ich hab vieles dabei gelernt...

Ich halte Euch auf dem Laufenden, nun feiert aber erstmal schön,
bis bald, Gina.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 16:30 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