AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner
Thema durchsuchen
Ansicht
Themen-Optionen

Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

Ein Thema von Newcomer91 · begonnen am 14. Jan 2011 · letzter Beitrag vom 14. Jan 2011
Antwort Antwort
Seite 2 von 3     12 3      
taveuni

Registriert seit: 3. Apr 2007
Ort: Zürich
533 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 09:51
ForceDirectories erstellt das Verzeichnis wenn nicht vorhanden.
Du brauchst das ganze ExtractFilePath Gedöns nicht.

Also:

Delphi-Quellcode:
var
  sDir: String;
begin
  sDir:= ('C:\blablabllaa\blaaablabla');
  if not ForceDirectories(sDir)
  begin
    // das Verzeichnis ist nicht vorhanden und konnte nicht erstellt werden.
    // weshalb - mit GetLastError auswerten.
  end
  else
    // mach was in dem Verzeichnis
  begin
  end;
Die obige Aussage repräsentiert meine persönliche Meinung.
Diese erhebt keinen Anspruch auf Objektivität oder Richtigkeit.
  Mit Zitat antworten Zitat
Bernerbaer
(Gast)

n/a Beiträge
 
#12

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 09:52
Weshalb verwendest du if not FileExists(ExtractFilePath(sDir)+'Experience.txt') then Du willst doch direkt ins Verzeichnis sDir schreiben.

Also:
Delphi-Quellcode:
....
sDir:= IncludeTrailingPathDelimeter(sDir); //sicherstellen das sDir mit einem Backslash aufhört

If not Fileexists(SDir + 'Experience.txtthen
begin
  AssignFile(txt, sDir +'Experience.txt');
  rewrite(txt);
  CloseFile(txt);

end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#13

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 09:55
Und jetzt einmal im Ganzen (ungetestet, sollte aber passen):
Delphi-Quellcode:
procedure TfrmExperience.btnSaveClick(Sender: TObject);
const Filename = 'Experience.txt';
var
  txt: TextFile;
  sDir: String;
begin
  sDir:= ('C:\blablabllaa\blaaablabla');

  if ((edtHeadline.Text <> '') and (Memo1.Text <> '')) then begin
    ListBox1.Items.Add(edtHeadline.Text);

    if DirectoryExists(sDir) or ForceDirectories(sDir) then
      begin
        sDir := IncludeTrailingPathDelimiter(sDir);
      
        if not FileExists(sDir + Filename) then
          begin
            AssignFile(txt, sDir + Filename);
            rewrite(txt);
            CloseFile(txt);
          end;
      end;
  end;
end;
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

Geändert von DeddyH (14. Jan 2011 um 09:57 Uhr) Grund: Das "not" war zuviel
  Mit Zitat antworten Zitat
Newcomer91

Registriert seit: 9. Mär 2010
66 Beiträge
 
Delphi 2010 Professional
 
#14

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 10:00
Danke für die zahlreichen posts plötzlich )

Ja, das mti dem extractfilepath war mir entgangen,
ich hatte es nun eben so gelöst:
Delphi-Quellcode:
procedure TfrmExperience.btnSaveClick(Sender: TObject);
var
  txt: TextFile;
  sDir: String;
begin
  sDir:= ExtractFilePath(Application.Exename)+'Unterordner\';

  if ((edtHeadline.Text <> '') and (Memo1.Text <> '')) then begin
    ListBox1.Items.Add(edtHeadline.Text);

  if not DirectoryExists(sDir) then
    ForceDirectories(sDir);

  if not FileExists(sDir+'Experience.txt') then
    begin
      AssignFile(txt, sDir +'Experience.txt');
      rewrite(txt);
      CloseFile(txt);
    end;
  end;
end;
Nun hab ich schon ne andere Sache an der ich grübel

Aber danke nochmal.
  Mit Zitat antworten Zitat
Newcomer91

Registriert seit: 9. Mär 2010
66 Beiträge
 
Delphi 2010 Professional
 
#15

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 10:08
Wie kann ich dem Filename anhand des Inhalts des Editfeldes edtHeadline.txt bestimmen?

wenn ichs so eingebe in meinen code, wird daraus einfach eine Datei, es soll aber ja eine Textdatei werden.

Jemand ne Idee?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#16

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 10:12
Delphi-Referenz durchsuchenChangeFileExt
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
Newcomer91

Registriert seit: 9. Mär 2010
66 Beiträge
 
Delphi 2010 Professional
 
#17

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 10:17
if not FileExists(sDir+ ChangeFileExt(edtHeadline.text)'txt') then
Hab es bereits mit und ohne hochkommas sowie mit und ohne punkt getestet.

Was mache ich falsch?

//Edit: In der Fehlermeldung wurde von nicht genügend wirklichen parametern gesprochen
  Mit Zitat antworten Zitat
Bernerbaer
(Gast)

n/a Beiträge
 
#18

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 10:22
Warnung!
Unabhängig zu den schon des öftern erwähnten ExtractFilePath-Problem. Empfehle ich Dir dein Vorgehen nochmals zu überdenken.

Ohne weiteres von deinem Programm zu wissen, denke ich dass es mindestens bedenklich ist, im Programmverzeichnis Daten abzulegen. Unter Windows Vista oder Windows Seven haben Benutzer (auch als Administratoren angemeldete) in der Regel keine Schreibrechte! Microsoft schlägt andere Ordner vor (z.Bsp. Application Data) um solche Daten abzuspeichern.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.624 Beiträge
 
Delphi 12 Athens
 
#19

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 10:23
ChangeFileExt(edtHeadline.text, '.txt') Das steht doch in der Hilfe schön beschrieben.

[edit]
Warnung!
Unabhängig zu den schon des öftern erwähnten ExtractFilePath-Problem. Empfehle ich Dir dein Vorgehen nochmals zu überdenken.

Ohne weiteres von deinem Programm zu wissen, denke ich dass es mindestens bedenklich ist, im Programmverzeichnis Daten abzulegen. Unter Windows Vista oder Windows Seven haben Benutzer (auch als Administratoren angemeldete) in der Regel keine Schreibrechte! Microsoft schlägt andere Ordner vor (z.Bsp. Application Data) um solche Daten abzuspeichern.
Das kann man aber nicht unbedingt verallgemeinern. Für mobile Anwendungen ist es gängige Praxis, Daten im eigenen Verzeichnis abzulegen. Trotzdem ist der Hinweis natürlich angebracht. [/edit]
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

Geändert von DeddyH (14. Jan 2011 um 10:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#20

AW: Fehler bei Adressierung einer Textdatei zum zugehörigen Ordner

  Alt 14. Jan 2011, 10:23
jaja, Brute-Force-Programmieren ist doch toll

Wie man beim Klicken auf den Link erfährt, benötigt ChangeFileExt genau 2 Parameter. Parameter werden nach dem Funktionsnamen in Klammern angegeben, voneinander mit Kommata getrennt.

Das sieht dann z.B. so aus:
AssignFile(txt, sDir +'Experience.txt'); Da werden auch 2 Parameter übergeben.

Jetzt guck dir dein Konstrukt nochmal genau an
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 12:00 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