OpenSUSE: Access Denied

Antworten
ancistrus
Beiträge: 5
Registriert: Do 8. Mär 2012, 19:53

OpenSUSE: Access Denied

Beitrag von ancistrus »

Hallo!

Ich hab' ein Problem. Ich wollte wie folgt auf eine Textdatei zugreifen:

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
Var datei: file of char;
  pfadstr: string;
  pfad,puffer: char;
begin
pfadstr := Edit1.Text;
pfad := pfadstr[1];
AssignFile(datei,pfad);
Reset(datei);
REPEAT
  Read(datei,puffer);
  Listbox1.Items.Add(puffer);
until EOF(datei);
CloseFile(datei);
end;


Wenn ich nun auf eine Datei zugreifen möchte (Datei existiert, Rechte sind korrekt vergeben), wird angezeigt: "Access denied"
Ich bin schon ziemlich lange am rumprobieren, komme aber nicht weiter. Kann mir jem. helfen?

Achso, und falls jemandem der Code komisch vorkommt: Ich bin nicht nur neu hier im Forum, sondern auch noch sehr unerfahren
was FreePascal angeht ;)
Also sind sämtliche Verbesserungsvorschläge sehr wilkommen.


Grüße,
ancistrus
Zuletzt geändert von ancistrus am Do 8. Mär 2012, 20:22, insgesamt 1-mal geändert.

Benutzeravatar
af0815
Lazarusforum e. V.
Beiträge: 6212
Registriert: So 7. Jan 2007, 10:20
OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
CPU-Target: 32Bit (64Bit)
Wohnort: Burgenland
Kontaktdaten:

Re: OpenSUSE: Access Denied

Beitrag von af0815 »

Spukt AppAmor dazwischen ?!
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).

ancistrus
Beiträge: 5
Registriert: Do 8. Mär 2012, 19:53

Re: OpenSUSE: Access Denied

Beitrag von ancistrus »

Ist nicht installiert, scheint bei der 12.1. nicht standardmäßig dabei zu sein.

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: OpenSUSE: Access Denied

Beitrag von theo »

Alles komplett überflüssig.

Das reicht:

Code: Alles auswählen

ListBox1.Items.LoadFromFile('/home/theo/test.txt');

ancistrus
Beiträge: 5
Registriert: Do 8. Mär 2012, 19:53

Re: OpenSUSE: Access Denied

Beitrag von ancistrus »

Danke, das funktioniert super!

Aber der andere Weg muss doch auch irgendwie funktionieren, man will ja mit einer Datei vll.
auch mal was anderes machen als nur in einer Listbox darzustellen...?
Interessieren würd' mich das schon. :)

Grüße,
ancistrus

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: OpenSUSE: Access Denied

Beitrag von theo »

Was soll das sein?

pfad := pfadstr[1];

Der erste Buchstabe vom Pfad soll den ganzen Dateinamen beinhalten?
Char ist bei Pascal genau ein Zeichen, kein String.

ancistrus
Beiträge: 5
Registriert: Do 8. Mär 2012, 19:53

Re: OpenSUSE: Access Denied

Beitrag von ancistrus »

So in etwa sah mein erster Versuch aus, erschien mir auch sinnvoller. Geht aber nicht. Access violation.

Code: Alles auswählen

procedure TForm1.Button1Click(Sender: TObject);
Var datei: file of string;
  pfad,puffer: string;
begin
pfad := Edit1.Text;
AssignFile(datei,pfad);
Reset(datei);
REPEAT
  Read(datei,puffer);
  Listbox1.Items.Add(puffer);
until EOF(datei);
CloseFile(datei);
end;

Benutzeravatar
theo
Beiträge: 10498
Registriert: Mo 11. Sep 2006, 19:01

Re: OpenSUSE: Access Denied

Beitrag von theo »

Bissel suchen, so ein Grundlagenzeug findet man schon.

Z.B. hier http://wiki.freepascal.org/File_Handling_In_Pascal

Tipp: Mach's mit StringList, spart Zeit und Nerven:
http://wiki.freepascal.org/File_Handlin ... Text_files

ancistrus
Beiträge: 5
Registriert: Do 8. Mär 2012, 19:53

Re: OpenSUSE: Access Denied

Beitrag von ancistrus »

Herzlichen Dank, jetzt funktioniert wirklich alles :)
Lag wohl daran, dass ich vorwiegend bequemerweise nach Seiten auf Deutsch gesucht hab'.

Grüße,
ancistrus

Antworten