Autor Beitrag
der organist
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Fr 01.08.08 11:49 
Ich versuche gerade einen Highscore (nach einem Spiel) zu programmieren. So will ich den Punktestand in die entsprechende Textdatei speichern; p : textfil; und ap [1] gehört einem Array an, das ist der Punktestand in Real:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
AssignFile (p, 'C:\punkte0.txt');
  Rewrite (p);
  Reset (p);
  Write (p, FloatToStr (ap[1]));
  Close (p);


Beim Ablaufen bekomme ich in der Zeile mit WRite einen Fehler (auch wenn ich WriteLN) nutze. EInOutError 105

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin


Zuletzt bearbeitet von der organist am Fr 01.08.08 13:28, insgesamt 1-mal bearbeitet
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Fr 01.08.08 11:56 
Fürs schreiben braucht man ReWrite, fürs Lesen Reset. Wenn du das Reset rausschmeißt, sollte es gehen.
Die Hilfe sagt dazu: Errorcode 105: Datei nicht für Ausgabe geöffnet

Anmerkung: Es ist eine schlechte Idee, nach C:\ zu schreiben, das mangels der richtigen Rechte häufig nicht funktionieren wird.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
der organist Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Fr 01.08.08 12:03 
Was C:\ angeht, ich habe überlegt, welcher ordner auf jedem PC existiert, vllt gibbet da noch andere oder man könnte seinen eigenen Ordner erstellen, aber da weiss ich nich, wie das geht.

Vielen Dank für die schnelle hilfe.

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Fr 01.08.08 12:06 
*zu Luckies Webseite verlink*: www.michael-puff.de/Artikel/HOMEDIR.shtml

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
der organist Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Fr 01.08.08 12:19 
das heisst, man braucht nun den Benutzernamen, um es zu speichern, sonst geht das leider nich. Ich denke aber, dass das ein lösbares Problem ist.

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Fr 01.08.08 13:12 
Hast du den Artikel richtig gelesen?
Wenn du den da angegebenen Code nutzt, kriegst du alles fertig eingesetzt zurückgeliefert, inklusive des Benutzernamens.

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
der organist Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Fr 01.08.08 13:16 
anscheinend nich richtig genut, mach ich nochmal.

Edit sagt: Gelesen nochmal, aber wie genau soll ich die einbinden, muss ich da noch eine Variable nutzen? etc pp.

Anstelle des C:\punkte0.txt einfach die Funktion einsetzen. Und welches Parameter dann?

Mir ist gerade eingefallen, könnte man nicht einfach 'all users' nehmen. Da bleibt nur die FRage, ob dieser Ordner auch existiert, wenn es nur einen Benutzer gibt.

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin
Timosch
ontopic starontopic starontopic starontopic starontopic starofftopic starofftopic starofftopic star
Beiträge: 1314

Debian Squeeze, Win 7 Prof.
D7 Pers
BeitragVerfasst: Fr 01.08.08 13:57 
user profile iconder organist hat folgendes geschrieben:
anscheinend nich richtig genut, mach ich nochmal.

Edit sagt: Gelesen nochmal, aber wie genau soll ich die einbinden, muss ich da noch eine Variable nutzen? etc pp.

Anstelle des C:\punkte0.txt einfach die Funktion einsetzen. Und welches Parameter dann?

Mir ist gerade eingefallen, könnte man nicht einfach 'all users' nehmen. Da bleibt nur die FRage, ob dieser Ordner auch existiert, wenn es nur einen Benutzer gibt.


Anscheinend immer noch nicht gut genug gelesen...
In dem Artikel wird eine Funktion GetShellFolder vorgestellt. Dieser übergibst du CSIDL_APPDATA und bekommst den Anwendungsdatenpfad als String zurück.

All users? Erstens: Woher willst du wissen, wo dieser Ordner liegt? Da musst du genauso diese Funktion bemühen, denn du darfst NICHT, ich wiederhole NICHT, davon ausgehen, dass er C:\Dokumente und Einstellungen\All Users\Anwendungsdaten lautet. Bei mir liegt er zum Beispiel auf D:\Dokumente und Einstellungen\All Users\Anwendungsdaten. Zweitens: AFAIK kannst du da nur als Administrator schreibend drauf zugreifen. Genau dieses Verhalten vieler Programme ist der Grund, warum man selbst heute noch trotz Sicherheitsbedenken oft als Admin eingeloggt sein muss.

Übrigens: Ein Programm, dass einfach ungefragt Dateien auf C:\ schmeißen würde, würde ich sofort wieder runterschmeißen. Das grenzt an Malware.

_________________
If liberty means anything at all, it means the right to tell people what they do not want to hear. - George Orwell
jakobwenzel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1889
Erhaltene Danke: 1

XP home, ubuntu
BDS 2006 Prof
BeitragVerfasst: Fr 01.08.08 14:39 
user profile iconTimosch hat folgendes geschrieben:
All users? Erstens: Woher willst du wissen, wo dieser Ordner liegt? Da musst du genauso diese Funktion bemühen, denn du darfst NICHT, ich wiederhole NICHT, davon ausgehen, dass er C:\Dokumente und Einstellungen\All Users\Anwendungsdaten lautet. Bei mir liegt er zum Beispiel auf D:\Dokumente und Einstellungen\All Users\Anwendungsdaten.

Und auf einem Englischen XP hieße er "C:\Documents and Settings\All Users\Application Data". Unter Vista "C:\Users\All Users\Application Data".

user profile iconTimosch hat folgendes geschrieben:
Zweitens: AFAIK kannst du da nur als Administrator schreibend drauf zugreifen. Genau dieses Verhalten vieler Programme ist der Grund, warum man selbst heute noch trotz Sicherheitsbedenken oft als Admin eingeloggt sein muss.

Ich bin hier als eingeschränkter Nutzer eingeloggt und kann in diesen Ordner schreiben. (Ob das unter Vista anders wäre, weiß ich nicht)

_________________
I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
der organist Threadstarter
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 467
Erhaltene Danke: 17

WIN 7
NQC, Basic, Delphi 2010
BeitragVerfasst: Fr 01.08.08 22:03 
ES FUNZT !!!!! Vielen Dank für die Hilfe und Tritte in den A-llerwertesten zum Lesen.

_________________
»Gedanken sind mächtiger als Waffen. Wir erlauben es unseren Bürgern nicht, Waffen zu führen - warum sollten wir es ihnen erlauben, selbständig zu denken?« Josef Stalin