| Autor |
Beitrag |
Shoppix
      
Beiträge: 19
|
Verfasst: So 27.03.05 11:58
Hallo,
Ich habe vorlendes Problem:
Ich habe ein Program geschrieben das viele Txt-Dateien erzeugt, um jetzt mehr ordnung halten zu könne will ich das er alle Txt-Dateien in einen Ordner schriebt...soweit habe ich es auch schon geschaft das er dem momentanen "Exe-datei Pfad" ausliest und dann an den Pfad einen ordner erstellt. Jetzt schaffe ich es aber nicht das er mir die TXT-Dateien in diesen ordner schreibt geschweige denn ausleist ... was mach ich falsch:
-->proglocation ist der Pfad der Exe-Datei
Delphi-Quelltext 1:
| savedate:=(progLocation+'\Kontakt\'); |
savedate sieht so aus:
C:\Dokumente und Einstellungen\Shoppix-er\Desktop\Netzwerk-JK-\Delphi\Delphi\Adress\Kontakt\
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| neu:=tstringlist.create; if FileExists(savedate+'Adressen.txt') then else neu.SaveToFile(savedate+'Adressen.txt'); end; |
ja das Prog** compilliert nicht weil er savedate+'Adressen.txt' nicht findet...??
bidde um Hilfe;)
Moderiert von raziel: Delphi-Tags hinzugefügt.
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 27.03.05 12:02
Shoppix hat folgendes geschrieben: | | ja das Prog** compilliert nicht weil er savedate+'Adressen.txt' nicht findet...?? |
Glaube ich nicht. Warum sollte sich der Delphi-Compiler an einer nicht vorhandenen Textdatei stören? Dein Programm wird nicht kompiliert, weil der Teil Unfug ist:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| neu:=tstringlist.create; if FileExists(savedate+'Adressen.txt') then else neu.SaveToFile(savedate+'Adressen.txt'); end; |
Das heißt soviel wie
| Zitat: | | Wenn Datei XY vorhanden, dann ansonsten speichere in Datei XY |
Denk mal darüber nach! 
|
|
Shoppix 
      
Beiträge: 19
|
Verfasst: So 27.03.05 16:44
Titel: ...
hallo,
also das Script funktioniert eigentlich ... du diese if then else bedingung habe ich eine leere datei erstellt... [zur erklärung: neu:=tstringlist ist leer wenn ich dann frage ob die datei existiert und er gibt mir true zurück dann passiert nichts wenn aber die datei nicht existiert dann schriebt er neu in eine file] .. somit macht das wieder sinn... also mein problem ist es das ich jetzt einen mit createdir einen ordner erstellt habe dessen Pfad derselbe der exedatei ist...so nun will ich alle text dateien in diesen ordern speichern: vorher war es ja klar weil der das in den selben ordner wie die exedatei speicherte jetzt muss ich einen pfad angeben
also habe ich es so versucht:
proglocation ist der pfad der exedatei; savedate ist proglocation+'kontakt'(der ordner)
nun wollte ich das so speichern: neu.savetofile(savedate+'dateiname.txt') aber das findet er nicht weil .?. ich denke das er savedate nicht als string erkennt und deshatl nach einer datei nacmen (savedat+...) sucht die gibt es natürlich nicht..
vielleicht kann mir ja doch jemand helfen?
MfG
shoppix
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 27.03.05 17:45
Kannst du auch langsamer schreiben? Dann würde dein Text nämlich etwas Sinn ergeben. So bleibt mir bei diesem Dahingeschludere nur ein ratloses: "Hä"? 
|
|
Shoppix 
      
Beiträge: 19
|
Verfasst: So 27.03.05 18:07
Titel: ;)
oki .. sorry ..
also ich versuch mal mein Problem etwas anders (hoffentlich verständlicher) darzustellen:
ich speicher eine TStringList, in einen ordner[c:\dukumente und einstellungen\shoppix\desktop\ordner\]
var s:tstringlist;
.
.
.
s.savetofile('c:\dukumente und einstellungen\shoppix\desktop\ordner\adressen.txt');
//das müsste ja klappen!
so nun will ich aber -->'c:\dukumente und einstellungen\shoppix\desktop\ordner\<-- durch einen String ersetzen z.B durch "savedate" wie muss es dann aussehen?
ich habe das so versuch, klappt aber nicht:
s.savetofile(savedate+'adressen.txt');
__???__
Bitte um Hilfe
MfG
shoppix
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: So 27.03.05 18:12
wie kommst du an Proglocation?
Du darfst nicht den Exe-Pfad verwenden, sondern den Ordner in dem die Exe liegt!
hole proglocation mit proclocation := extractFilepath(paramstr(0))
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 27.03.05 18:24
Titel: Re: ;)
Gute Frage, Karlson. Ich hänge gleich noch folgendes an: Was bedeutet:
Shoppix hat folgendes geschrieben: | ich habe das so versuch, klappt aber nicht:
s.savetofile(savedate+'adressen.txt'); |
Was klappt nicht? So was gehört dazu wenn man Fragen stellt und Probleme lösen möchte. Ich meine, die Chance ist eher gering, dass du in meiner Nachbarschaft wohnst und ich einen Blick auf deinen PC werfen kann, um die Fehlermeldung o.ä. zu sehen.
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: So 27.03.05 18:40
Also wenn man sich darauf verlassen kann was der Autor sagt, dann müsste es folgendermaßen aussehen:
Er holt Proglocation mit application.exename, denn er sagte:
| Zitat: |
-->proglocation ist der Pfad der Exe-Datei
|
Dann baut er sich daraus SaveDate zusammen:
| Zitat: |
savedate ist proglocation+'kontakt'(der ordner)
|
Da haben wir schon den Salat. Er bekommt damit irgendeinen vermurksten Pfad.
Selbst wenn er Proglocation mit ExtractFilePath holt stimmt das nicht, denn dann müsste es: savedate := progloc + '\kontakt\' heissen.
Hinzukommt das komische Konstrukt auf das dich schon Mathias aufmerksam gemacht hat (du aber nicht drauf eingegangen bist).
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| neu:=tstringlist.create; if FileExists(savedate+'Adressen.txt') then else neu.SaveToFile(savedate+'Adressen.txt'); end; |
savedate+'Adressen.txt' kann nicht existieren weil es garkein richtigr Pfad ist.
Eigentlich müsstest du in der markierten Zeile eine Exception kriegen.
|
|
Shoppix 
      
Beiträge: 19
|
Verfasst: So 27.03.05 18:41
also jetzt mal mein quelltext..:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23:
| procedure TForm1.FormCreate(Sender: TObject); begin ProgLocation:=ExtractFileDir(ParamStr(0)); end;
procedure TForm1.FormActivate(Sender: TObject); Var neu: TStringList; saveadressen:string; begin if not DirectoryExists(ProgLocation+'\Kontakte\') then if not CreateDir(ProgLocation+'\Kontakte\') then raise Exception.Create('Erstellen eines Ordners nicht möglich');
savedate:=(progLocation+'\Kontakt\'); um auf den neu erstellten ordner zuzugreifen
edit1.text:=savedate; neu:=tstringlist.create; if FileExists(savedate+'adressen.txt') then else neu.SaveToFile(savedate+'adressen.txt'); end; |
so folgende Fehlermeldung:
Im Prozess Adressen.exe ist eine Exepcion der Klasse EFCreateError aufgetreten. Meldung 'datei "c:\dukumente und einstelungen\..Blabal..\kontakt\adressen.txt' kann nicht erstellt werden Das System kann den angegebenen Pfad nicht finden. ...
ich hoffe das hilft weiter
Moderiert von AXMD: Delphi-Tags hinzugefügt.
|
|
AXMD
      
Beiträge: 4006
Erhaltene Danke: 7
Windows 10 64 bit
C# (Visual Studio 2019 Express)
|
Verfasst: So 27.03.05 18:42
Könntest du bitte bei Quellcode Delphitags verwenden?
Vielen Dank
AXMD
|
|
Shoppix 
      
Beiträge: 19
|
Verfasst: So 27.03.05 18:46
was sind delphitags?? ich bin hier reicht neu und poste nich so oft...??
schäm 
|
|
MathiasSimmack
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 27.03.05 19:14
Delphi-Tags sind die am 2. in Kassel, oder?
Nein, ernsthaft: Wenn du einen Beitrag verfasst, dann siehst du im oberen Teil (über den Smilies) eine ganze Reihe Buttons. Dort steht auch was von Delphi. Oder du machst es dir einfach und klammerst deinen Code wie folgt ein
Quelltext 1: 2: 3:
| [delphi]if(Irgendwas) then begin end;[/delphi] |
Ergebnis:
Delphi-Quelltext 1: 2: 3:
| if(Irgendwas) then begin end; |
Kann man besser lesen.
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: So 27.03.05 19:40
|
|
Shoppix 
      
Beiträge: 19
|
Verfasst: So 27.03.05 20:09
Hallo,
bitte stört euch nicht an meiner Rechtschriebnung...
wie gesagt mein problem ist es: [nochmal auf dem Punkt gebracht...]:
ich will eine leere Text Datei mit dem Namen "Adressen.txt" in eine Ordner speichern, dessen Pfad ich durch eine String bestimme...
MfG
Shoppix
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: So 27.03.05 20:21
Okay, dann bring ichs auch nochmal auf den Punkt...
Du willst abspeichern in den Ordner 'Kontakt', aber du erstellst den Ordner 'Kontakt e'.
Das mit der Rechtschreibung ist erst dann ein Problem wenn es für dich selbst eins wird. Und wenn das passiert sollte man sich wirklich etwas zusammenreissen...
|
|
OneOfTen
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: So 27.03.05 20:47
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| begin ProgLocation := ExtractFilePath(ParamStr(0)); savedate := progLocation+'Kontakt\'; ForceDirectories(savedate);
edit1.text := savedate;
neu := tstringlist.create; If Not FileExists(savedate+'adressen.txt') Then neu.SaveToFile(savedate+'adressen.txt') Else ShowMessage('Die Datei gibts schon. Änderungen können so doch gar nicht gemacht werden oder?'); end; |
geht das so?
|
|
Shoppix 
      
Beiträge: 19
|
Verfasst: So 27.03.05 20:56
Titel: Ich bitte um verzeihung
Hallo,
Verzeiht mir bitte meine DUMHEIT...
das lag doch wirklich an diesem verfickten e von Kontakt(e)...ich danke allen die sich trotzdessen sich mühe mit mir gemacht haben : ich schäme mich so
ich habe aber noch was .. das klappt jetzt aber ich habe zwei "Forms" und ich müsste jetzt aus dem zweiten Form auf die Variabel aus dem erstn zugreifen.
Ich könnte das ja neu einlesen aber wenn es ne möglichkeit gibt dadrauf zuzugreifen wäre das toll...
MfG
Shoppix
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Mo 28.03.05 00:45
Jeder macht mal nen Fehler. Ist halb so wild.
Musst aber halt auch meinen Tonfall dann verstehen...
Wegen Rechtschreibung...hast du's einfach nicht so mit Rechtschreibung, oder bist du ein jüngerer Kandidat?
Wegen der Variable: Du musst sie im Public-Bereich der Form1 deklarieren.
Dann kannst du mit form1.variable_a darauf zugreifen.
|
|
Shoppix 
      
Beiträge: 19
|
Verfasst: Mo 28.03.05 10:15
ne glab ich nicht .. ich habe das zwar nicht ausprobiert aber ich mache das mit:
Delphi-Quelltext 1:
| unit1.variabel.(anweisung) |
geht vielleicht beides...
MfG
Shoppix
|
|
Karlson
      
Beiträge: 2088
|
Verfasst: Mo 28.03.05 14:44
wie wärs wenn du es einfach ausprobierst? Und nein, es muss form1 heissen...
Dein Source ist übrigens mal wieder unsinn. Eine Variable kann keine Anweisungen verarbeiten.
|
|