Warum setzt Dein Code der in das CSV-File hinein schreiben will 
nicht einfach eine leere Datei gleichen Namens nur mit einem ".lock" 
als Surfix dahinter (Bsp: YXName.csv.lock ) und löscht dann das 
Lock-File, wenn die Schreibaktion beendet ist ?

Gibt es das Lock-File, kann nur von anderen Threads oder Forks die 
CSV-Datei nur gelesen werden.

Gruß Achim

-------

Am Freitag, 11. April 2014, 20:09:24 schrieb gooly:
> Am 11.04.2014 18:04, schrieb Robert Großkopf:
> > Hallo Gooly,
> > 
> >> kann ich mit LO ein csv-File 'Shared-Read' öffnen (dass andere
> >> Programme auch das File öffnen und lesen können, obwohl es in
> >> LO geöffnet ist)?
> > 
> > Ich habe das gerade einmal getestet: CSV-Datei in LO-Base (als
> > eingebundene Texttabelle) geöffnet, dann noch in Calc und in
> > einem einfachen Textprogramm (KWrite) geöffnet.
> 
> Hmm,
> mein Programm möchte das csv-file öffnen mit den
> Win-Api-Funktionen. Also I öffne das csv-file in LO(Version
> 3.6.7.2 (Build ID: e183d5b) save Version) und dann in meinem
> Programm mache ich:
> 
> #import "kernel32.dll"
> //http://msdn.microsoft.com/en-us/library/windows/desktop/aa36546
> 7%28v=vs.85%29.aspx ...
>       int wHdl = CreateFileW(fName, GENERIC_READ, WinFILE_SHARE_READ,
> WinNULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, WinNULL);
>       if ( wHdl == INVALID_HANDLE ) {
>               Print("ERROR Win32: Invalid Handle ",getWinErrors(),"
> ",addErr); SetUserError( ERR_FILE_INVALID_HANDLE ); return("");
>       }
> 
> und erhalte als Fehlermeldung:
> 
> ERROR Win32: Invalid Handle  ERROR_SHARING_VIOLATION ReadCsvFile:
> 1834 ( #define ERROR_SHARING_VIOLATION 32 // (0x20) The process
> cannot access the file because it is being used by another
> process. )
> 
> Das mit der Integrität ist mir klar! In meinem Fall ist csv
> offen, weil ich etwas geändert habe und das ich jetzt im anderen
> Programm überprüfen will...
> 
> > Das größte Problem ist wohl nachher eine Integrität der Datei
> > hin zu bekommen. Beim Speichern in Calc wurde ich zwar
> > gewarnt, dass ein anderes Programm die Datei geändert hätte -
> > die Änderungen aus Base waren dann verloren, wurden aber in
> > der Base-Tabelle munter weiter angezeigt. KWrite zeigt mit
> > einer Meldung jede Dateiänderung durch ein anderes Programm
> > an, so dass ich die neueste Version laden kann.
> > 
> > Da gibt es meines Wissens nirgendwo eine Schutzmöglichkeit, die
> > es anderen Programmen verbietet, nicht nur lesend, sondern
> > auch schreibend auf *.csv-Dateien zuzugreifen.
> > 
> > Problem wird also sein, dass gar kein Schreibschutz da ist und
> > bei unbedachtem Arbeiten die Datenintegrität der Datei nicht
> > mehr gewährleistet ist.
> > 
> > Gruß
> > 
> > Robert


-- 
Liste abmelden mit E-Mail an: [email protected]
Probleme? 
http://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: http://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: http://listarchives.libreoffice.org/de/users/
Alle E-Mails an diese Liste werden unlöschbar öffentlich archiviert

Antwort per Email an