AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

In eine CSV Datei Reinschreiben???

Ein Thema von r3v0 · begonnen am 15. Aug 2007 · letzter Beitrag vom 17. Aug 2007
Antwort Antwort
Seite 2 von 2     12   
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#11

Re: In eine CSV Datei Reinschreiben???

  Alt 15. Aug 2007, 17:09
Zitat von r3v0:
Mir ist eben noch eingefallen das es sich um ein Multiuser system handeln wird.
Und das ist das KO-Kriterium für CSV-Dateien als Datenbankersatz.
Ohne richtige Datenbank geht bei einem Multiuser System gar nichts.
Andreas
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: In eine CSV Datei Reinschreiben???

  Alt 15. Aug 2007, 17:40
Also entweder:
-Daten in richtige Datenbank kopieren
-eigene MU-Steuerung implementieren
-csv-Datei als externe Textdatei vom DBMS verwalten lassen
Markus Kinzler
  Mit Zitat antworten Zitat
r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#13

Re: In eine CSV Datei Reinschreiben???

  Alt 16. Aug 2007, 20:53
Okay habe das problem anders gelöst!

habe einfach die komplette csv datei in eine TStringList reingelesen habe die betreffende Zeile Neugeschrieben und dann den inhalt der TStringList wieder in die CSV datei geschrieben!
Das ganze dauert so 0,03 Sekunden. für die Zeit bräuchte ich eine sperre der datei!

dies habe ich noch nicht gelöst!
Wollte ich aber wie folgt machen!
Einfach mit einen try except den fehler E/A32 oder wie der auch immer heißt abfangen und dann kurz warten und nomma probieren! Weil wenn die CSV datei benutzt wird dann weiß ich das da einer schreibt/liest! dann soll der nächste warten bis die frei ist und TaDa es nomma probieren wenn sie dann wieder frei ist kann er auch schreiben! Holt sich halt die komplette datei und schreibt nur seine Zeile nochmals neu!
dann noch eine überprüfung ob schon ein ';OK' hinten dran hängt und dementsprechend reagieren!

gibt es noch sachen an die ich denken sollte??
Blub ich bin die Sig.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: In eine CSV Datei Reinschreiben???

  Alt 16. Aug 2007, 21:00
Bei MU-Zugriff würde ich dir sehr zum Einsatz eines richtigen DBMS raten.
Markus Kinzler
  Mit Zitat antworten Zitat
r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: In eine CSV Datei Reinschreiben???

  Alt 16. Aug 2007, 21:04
kann ich dieses DBMS auch ohne datenbank usw laufen lassen!
Ich kriege leider keine Datenbank zur verfügung gestellt! Und ich darf auch nichts bei den Leuten isntallieren!
Blub ich bin die Sig.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: In eine CSV Datei Reinschreiben???

  Alt 17. Aug 2007, 06:52
Das DBMS ist der Datenbankserver. Du fragst also ob man einen (Auto-)Motor auch ohne Auto nutzen kann.
darfst du nichts installiere oder darf es nur nichts kosten?
Markus Kinzler
  Mit Zitat antworten Zitat
r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: In eine CSV Datei Reinschreiben???

  Alt 17. Aug 2007, 07:11
darf nichts installieren!
Server haben wir hier genug rumstehen!
Doch die wollen das komplett ohne datenbank anbindung!
naja mal schauen! Heute 12 Uhr ist abgabe!
Das locking muss noch rein!
Blub ich bin die Sig.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#18

Re: In eine CSV Datei Reinschreiben???

  Alt 17. Aug 2007, 07:54
Sichere dich ab, dass nicht du nachher die Haue kriegst, wenn es Probleme wegen dem Multiuserbetrieb gibt. Es ist doch immer das Gleiche.

Wegen dem CSV Locking. Du kannst versuchen, das ReadOnly Bit zu setzen, sobald du das Schreiben beginnst. Versucht gleichzeitig ein anderer User das Schreiben, kriegst du dort eine Exception, die du abfangen kannst und entsprechend drauf reagieren kannst.
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#19

Re: In eine CSV Datei Reinschreiben???

  Alt 17. Aug 2007, 08:47
Hallo,

Zitat von r3v0:
habe einfach die komplette csv datei in eine TStringList reingelesen habe die betreffende Zeile Neugeschrieben und dann den inhalt der TStringList wieder in die CSV datei geschrieben!
Das ganze dauert so 0,03 Sekunden. für die Zeit bräuchte ich eine sperre der datei!
das Einlesen würde ich etwa so machen, dann hast du deine Sperre:

Delphi-Quellcode:
var
  fs: TFileSTream;
  fn: TFileName;
  s: TStrings;
begin
  // fn := ParamStr(1);
  try
    fs := TFileStream.Create(fn, fmOpenReadWrite or fmShareExclusive);
  except
    // try again later ...
    Exit;
  end;

  s := TStringList.Create;
  s.LoadFromStream(fs);
  // your own wicked code ...
  fs.Size := 0;
  s.SaveToStream(fs);
  s.Free;

  fs.Free;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
r3v0

Registriert seit: 26. Mär 2007
Ort: Wegberg
45 Beiträge
 
Delphi 7 Enterprise
 
#20

Re: In eine CSV Datei Reinschreiben???

  Alt 17. Aug 2007, 09:47
Ich habe es nun mit so nem try except block abgefangen!
Darum ne repeat until Schleife gesetzt und nen Sleep er soll es halt 10 mal machen wenn nach dem 10ten mal es immer noch nicht klappert! dann ne Message ey da hat was nicht geklappt try it again!

So heute ist abgabe und ich bin fertig

Danke nochmals für eure Hilfe!
Blub ich bin die Sig.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:54 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