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
