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
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 14. Jan 2011, 08:21
Auswerten heißt, dass Du mit dem Funktionsrückgabewert auch etwas anfängst, ihn z.B. einer Variablen zuweist.
Delphi-Quellcode:
function Doppelwert(i: integer): integer;
begin
  Result := i * 2;
end;

...

Zahl := 10;
Doppelwert(Zahl); //dieser Aufruf ist komplett überflüssig, da er nichts bewirkt
Zahl := Doppelwert(Zahl); //so sieht das schon anders aus ;)
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
 
#2

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

  Alt 14. Jan 2011, 08:30
Soweit so gut, nun habe ich schonmal die Textdatei ohne den Namen des Ordners dazu erstellt.
Delphi-Quellcode:
procedure TfrmExperience.btnSaveClick(Sender: TObject);
var
  txt: TextFile;
  sDir: String;
begin
  sDir:= ('C:\blablabllaa\blaaablabla');

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

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

  if not FileExists(ExtractFilePath(sDir)+'Experience.txt') then
    begin
      sDir := extractFilePath(sDir);
      AssignFile(txt, sDir +'Experience.txt');
      rewrite(txt);
      CloseFile(txt);
    end;
  end;
end;
Nach wie vor wird sie allerdings im selben directory der exe erstellt.
Ich kann in dem code nirgens sehen dass ich das explizit angebe.

Was fehlt noch?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 14. Jan 2011, 08:40
Hast Du mal unter C:\blablabllaa nachgesehen?
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
 
#4

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

  Alt 14. Jan 2011, 08:42
Problemgelöst. Lag an einer anderen Sache.
Dennoch, ein danke an DeddyH

/closed;

Geändert von Newcomer91 (14. Jan 2011 um 08:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.458 Beiträge
 
Delphi 12 Athens
 
#5

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

  Alt 14. Jan 2011, 08:47
Moin...

AssignFile(txt, sDir +'Experience.txt');
...setze mal hier einen Breakpoint und sage mal wie sDir zu diesem Zeitpunkt aussieht.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

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

  Alt 14. Jan 2011, 08:47
Das ist ein Unterordner des Programmordners? Dann ist das klar, da Du ja den letzten Ordnernamen mit ExtractFilePath wieder rauslöschst (zumindest, solange er nicht mit einem Backslash abschließt). Lass also das ExtractFilePath einfach mal weg.
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
taveuni

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

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

  Alt 14. Jan 2011, 08: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
 
#8

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

  Alt 14. Jan 2011, 08: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.666 Beiträge
 
Delphi 12 Athens
 
#9

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

  Alt 14. Jan 2011, 08: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 08:57 Uhr) Grund: Das "not" war zuviel
  Mit Zitat antworten Zitat
Newcomer91

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

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

  Alt 14. Jan 2011, 09: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
Antwort Antwort


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 14:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz