AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Datei in EXCEL "schreibgeschützt" öffnen
Thema durchsuchen
Ansicht
Themen-Optionen

Datei in EXCEL "schreibgeschützt" öffnen

Ein Thema von TeronG · begonnen am 11. Aug 2009 · letzter Beitrag vom 11. Aug 2009
Antwort Antwort
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#1

Datei in EXCEL "schreibgeschützt" öffnen

  Alt 11. Aug 2009, 10:23
HI
Habe ein kleines Progrämmchen geschrieben, dass Daten in eine CSV schreibt. (AppendStringToFile)
Wenn ich nun aber diese Datei mit EXCEL öffne (ExecuteProgramm) bekomme ich beim Schreibversuch weiterer Daten immer eine Fehlermeldung, dass die Datei schon geöffnet sei. (Isse ja auch ^^)

In EXCEL kann man ja eine Datei "schreibgeschützt" öffnen.
Kann ich das auch aus meinem Programm heraus z.B. mit ShellExecute machen? Wenn ja wie?

Bin beim Suchen (noch) nicht fündig geworden.


BTW: AppendStringToFile & ExecuteProgramm: Beide aus der DP
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Datei in EXCEL "schreibgeschützt" öffnen

  Alt 11. Aug 2009, 10:28
Du könntest auch versuchen einfach via SetFileAttributes das Schreibschutzflag setzen,
vor der Übergabe an Excel, dieses wird von Excel eigentlich beachtet.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Datei in EXCEL "schreibgeschützt" öffnen

  Alt 11. Aug 2009, 10:42

Du bist mein Held!

Jetzt muss ich nur bevor ich selber wieder rein schreiben will das zurücksetzen
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Datei in EXCEL "schreibgeschützt" öffnen

  Alt 11. Aug 2009, 11:31
eventuell das Excel per ShellExecuteEx oder CreateProcess starten, dann kannst du dieses überwachen und wenn es z.B. wieder beendet wird, dann das Attribut wieder zurücksetzen.

und vielleicht findet sich ja doch noch ein Parameter, mit welchem man auch den Schreibschutz nur Excel-intern setzen kann.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#5

Re: Datei in EXCEL "schreibgeschützt" öffnen

  Alt 11. Aug 2009, 11:56
Oder einfach selbser die Datei immer geöffnet lassen, mit TFileStream - da kann man ja auch angeben dass andere Lesen aber nicht schrieben dürfen
  Mit Zitat antworten Zitat
Benutzerbild von TeronG
TeronG

Registriert seit: 19. Jul 2004
Ort: München
960 Beiträge
 
Delphi 2007 Professional
 
#6

Re: Datei in EXCEL "schreibgeschützt" öffnen

  Alt 11. Aug 2009, 12:31
Da ich zyklisch Werte hinzufüge muss ich die Datei auch sofort wieder "freigeben".

@jfheins: jo .. ich fand aber die AppendToFile procedure nice und wollte die so lassen

Parameter für EXCEL währe fein ... hab ich auch schon gefunden.
Zitat:
/r <Dateiname>
Öffnet nach dem Start von Excel die angegebene Datei schreibgeschützt.
Nun muss ich diesen nur noch übergeben....



Interessanterweise habe ich beim beenden (!) meines Programmes wenn ich ExecuteProgramm verwende dauernd eine Fehlermeldung bekommen.

Zitat:
Exception-Klasse EPrivilege mit Meldung 'Privilegierte Anweisung'.
Mit ShellExecute habe ich diese nicht.



EDIT: so btw mal die Lösung:
Delphi-Quellcode:
  
temp := '/r "'+vDataFileName+'"';
ShellExecute(Application.Handle,'open', 'excel.exe',pchar(temp),nil,sw_show);
龍 Der Unterschied zwischen Theorie und Praxis ist in der Praxis größer als in der Theorie.
  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 15: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