AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Save-Probleme

Ein Thema von parethol · begonnen am 20. Dez 2012 · letzter Beitrag vom 8. Jan 2013
Antwort Antwort
Seite 1 von 2  1 2   
parethol

Registriert seit: 20. Dez 2012
7 Beiträge
 
#1

Save-Probleme

  Alt 20. Dez 2012, 16:34
Hallo zusammen,

ich brauche ganz dringend eure Hilfe. Ich muss ein kleines Programm bis morgen Abend releasen. Ich hatte es eigentlich so weit, dass alles funktionierte. Nun ist im letzten moment eine neue Anforderung dazu gekommen und dabei ein Problem aufgetreten. Das Program soll ein paar Daten sammeln und danach in ein .csv File abspeichern, damit es vom Enduser in ein Excel importiert werden kann (nicht mein Vorschlag, die zuständige Person wollte dies so....)

Vorher ging es wie es in der Syntax steht:

Code:
 //-------------------------Save----------------------------------
   begin     //
   List := TStringList.Create;
    try
    data:= Form1.Label5.Caption + ';'+TimeToStr(Now())+';'+ form1.Edit2.Text + ';' + selftest + ';' + form1.Edit1.Text + ';' + rad + ';' + sur + ';' + light + ';'+ ics + ';' + index + ';' + transf1 +';' + transf2 + ';' + transf3 + ';' + interrupt + ';' + emo + ';' + door+ ';' +  move + ';' + call+ ';' + '';
// variabeln

 
     List.LoadFromFile(GetCurrentDir + '\test.csv');
     List.Add(data);
     List.SaveToFile(GetCurrentDir + '\test.csv');
     form3.Visible:=false;
     form4.visible:=true;
 
    finally
     List.Free;
   end;       //
 end;
 end;
end;
end;
Folgende Fehlermeldung tritt auf:
Im Projekt prog.exe ist eine Exception der Klasse EFCreateError aufgetreten. Meldung "C:/progsys/test.csv" kann nicht erstellt werden. Zugriff verweigert. Prozess wurde angehalten. Mit einzelnen Anweisungen oder Start fortsetzen.


Danke für eure rasche Hilfe und Antwort.

Oli
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.881 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Save-Probleme

  Alt 20. Dez 2012, 16:40
Hast Du mal neu gebootet? Oder sind evtl. die Dateiattribute geändert worden? Übrigens ist GetCurrentDir keine gute Option, vielleicht suchst Du ExtractFileDir(ParamStr(0))?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Björn Ole
Björn Ole

Registriert seit: 11. Jul 2008
166 Beiträge
 
Delphi XE Professional
 
#3

AW: Save-Probleme

  Alt 20. Dez 2012, 16:45
Du hast keine Rechte nach C:/progsys/test.csv zu schreiben, Entweder das Programm mit Adminrechten starten, oder die CSV woanders hin speichern, z.B. auf den Desktop.
  Mit Zitat antworten Zitat
parethol

Registriert seit: 20. Dez 2012
7 Beiträge
 
#4

AW: Save-Probleme

  Alt 20. Dez 2012, 17:25
also die Attribute habe ich nur auf Hide gesetzt, damit nicht jeder in dem File herum schreiben kann. Das csv File wird dann per Datei import im Excel eingelesen. somit kann jeder sein eigenes Excelfile selber gestalten, mit filtern, grösse usw und die Rohdaten werden nicht verfälscht.

ich habe es so programmiert, dass dort wo das .exe geöffnet wird eine neue "Datenbank" gemacht wird.


Delphi-Quellcode:
if FileExists(GetCurrentDir+ '\test.csv')= false
then begin
    List := TStringList.Create;
    try
     List.Add('A;B;C;D;E;F;G);
List.SaveToFile(GetCurrentDir+
'\test.csv');
FileSetAttr(GetCurrentDir+
'\test.csv', faHidden);
finally
List.Free;
end;
end;

und der bereits beschriebene Block

Delphi-Quellcode:
 //-------------------------Save----------------------------------
   begin //
   List := TStringList.Create;
    try
    data:= Form1.Label5.Caption + ';'+TimeToStr(Now())+';'+ form1.Edit2.Text + ';' + selftest + ';' + form1.Edit1.Text + ';' + rad + ';' + sur + ';' + light + ';'+ ics + ';' + index + ';' + transf1 +';' + transf2 + ';' + transf3 + ';' + interrupt + ';' + emo + ';' + door+ ';' + move + ';' + call+ ';' + '';
// variabeln

 
     List.LoadFromFile(GetCurrentDir + '\test.csv');
     List.Add(data);
     List.SaveToFile(GetCurrentDir + '\test.csv');
     form3.Visible:=false;
     form4.visible:=true;
 
    finally
     List.Free;
   end; //
 end;
 end;
end;
end;
das sind die einzigen zwei Syntaxblöcke welche mit dem Zugriff auf die Daten zu tun haben.

Beisst sich hierbei etwas gegenseitig?


Neu boot hat nichts gebracht.



Gruss

Geändert von parethol (20. Dez 2012 um 17:26 Uhr) Grund: Ergänzung
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.881 Beiträge
 
Delphi 10.3 Rio
 
#5

AW: Save-Probleme

  Alt 20. Dez 2012, 17:28
Auf die Gefahr, dass ich mich wiederhole: GetCurrentDir ist eine Schnapsidee, das kann zwischendurch z.B. von einem TOpenDialog geändert werden, ohne dass man das mitkriegt. Nimm doch einen absoluten Pfad, am besten einen, der von Microsoft auch für Daten angedacht ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
parethol

Registriert seit: 20. Dez 2012
7 Beiträge
 
#6

AW: Save-Probleme

  Alt 20. Dez 2012, 17:33
@ DeddyH, das GetDir werd ich noch erledigen. Bin am Schreibtisch zusammen räumen, habe nichts mehr getextet im Code.

Andere Frage, wie kann es sein, dass es vor meinen paar Variabeln die ich noch geaddet habe finktioniert hat und jetzt nicht mehr?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.881 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Save-Probleme

  Alt 20. Dez 2012, 17:35
Ich habe keine Ahnung, aus irgendeinem Grund hast Du keinen Zugriff mehr auf die Datei. Das kann an Benutzerrechten, exklusivem Zugriff eines anderen Programms oder oder oder liegen, da kann man aus der Ferne nur raten.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#8

AW: Save-Probleme

  Alt 20. Dez 2012, 18:36
Delphi kennt sogenannte Prozeduren und Funktionen und diese sollte man auch benützen!!
Wenn du irgendwas speichern möchtest ist es eine gute Idee den kompletten Dateinamen (inkl. Pfad) als Parameter zu übergeben.
Delphi-Quellcode:
procedure TForm1.SaveCsvDaten(const dateiname:string);
begin
  // hier den Code zum speichern der Daten einfügen
end;

// und später der Aufruf
SaveCsvDaten('C:\test.csv'); // nur zum Test einen festen Dateinamen benützen
// oder so
if SaveDialog1.Execute then
  SaveCsvDaten(SaveDialog1.FileName);
Innerhalb dieser Prozedur wird nur der Parameter dateiname benützt; so wird das eine saubere Sache.
Ausserdem wäre es sinnvoll die Daten als einen Record zu übergeben; also einen weiteren Parameter einzusetzen. (aber das wäre Schritt 2)
Aber Schritt 1 ist ganz klar die Prozedur mit dem übergebenen Dateinamen.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.473 Beiträge
 
Delphi 7 Personal
 
#9

AW: Save-Probleme

  Alt 21. Dez 2012, 12:10
also die Attribute habe ich nur auf Hide gesetzt, damit nicht jeder in dem File herum schreiben kann.
Dann solltest Du auch ReadOnly nutzen, oder gleich die entsprechenden ADS-Rechte vergeben.

Was die "Nichtverfügbarkeit" angeht, nutze einen anderen Dateinamen (test.csv?) schreibe einmal und dann noch einmal.
Wenn das schief geht, dann laß die Finger von den Attributen, wenn's dann immer nich nicht klappt, dann schau mal ganz genau nach wo überall diese Datei genutzt wird. Vielleicht gibt#s da irgendwo noch ein fehlendes closefile?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
parethol

Registriert seit: 20. Dez 2012
7 Beiträge
 
#10

AW: Save-Probleme

  Alt 21. Dez 2012, 16:18
scheint als ob ich das Problem gefunden habe, es liegt am setzen der Attribute. wenn ich die Programmzeile auskomentiere, tritt das Problem nicht mehr auf.

Zitat:
Dann solltest Du auch ReadOnly nutzen, oder gleich die entsprechenden ADS-Rechte vergeben.
heisst das nicht nur, dass ich noch ich so bewusst eine schreib geschützte Datei generiere?

Gibt es keine anderen Befehle die Attribute zu setzen?

Geändert von parethol (21. Dez 2012 um 16:21 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 00:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf