Anwendung soll Ordner erstellen

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
DiBo33
Beiträge: 334
Registriert: Do 11. Okt 2007, 18:01

Re: Anwendung soll Ordner erstellen

Beitrag von DiBo33 »

Ich denke du führst dir mal mein Link zu Gemüte und arbeitest erst mal ein Grundlagen-Tutorial durch, alles andere hat keinen Wert.

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

Re: Anwendung soll Ordner erstellen

Beitrag von theo »

McCry hat geschrieben: lerne erst seit 2 Jahren Pascal.

Wenn du in dem Tempo weitermachst, schaffst du bis zu Niklaus Wirths hundertstem Geburtstag dein erstes eigenes Programm. :lol:

McCry
Beiträge: 42
Registriert: Mi 20. Jul 2011, 21:49
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Na Hier
Kontaktdaten:

Re: Anwendung soll Ordner erstellen

Beitrag von McCry »

@theo
Boa Alter!
Der Witz hat jetzt aber gessesen.
[code]Signatur:=McCry
Website:=ritualist.bplaced.net

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

Re: Anwendung soll Ordner erstellen

Beitrag von theo »

McCry hat geschrieben:@theo
Boa Alter!
Der Witz hat jetzt aber gessesen.


Wieso? Das war gar kein Witz. :lol:

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Re: Anwendung soll Ordner erstellen

Beitrag von schnullerbacke »

Versuchs mal so:

Code: Alles auswählen

program testCrDir;
uses
  sysutils;
 
var
  DirStr: string;
 
begin
  DirStr:= 'MeinDir';
  CreatDir(DirStr);
end;


Im aktiven Verzeichnis sollte dann MeinDir als Unterverzeichnis auftauchen.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

McCry
Beiträge: 42
Registriert: Mi 20. Jul 2011, 21:49
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
CPU-Target: xxBit
Wohnort: Na Hier
Kontaktdaten:

Re: Anwendung soll Ordner erstellen

Beitrag von McCry »

hi,
erstmal danke das du mir helfen willst.
Aber da , wie schon gesagt, mein Lehrer nicht viel drauf hat, weis ich nicht wie ich die Unit gestalten soll. :roll:
LG McCry
[code]Signatur:=McCry
Website:=ritualist.bplaced.net

l0lhaxx
Beiträge: 89
Registriert: Di 8. Dez 2015, 09:20

Re: Anwendung soll Ordner erstellen

Beitrag von l0lhaxx »

Hallo,

auch wenn das Thema schon älter ist hätte ich auch mal eine Frage dazu.
Ich möchte abfrage ob ein Verzeichnis schon besteht und wenn nicht sollen die fehlenden Ordner erstellt werden.

Dazu benutze ich ForceDirectories. Allerdings kann er mit dem DBEdit17.Caption nichts anfangen (DBEdit17 enthält den namen des letzten Ordners.
Wie löse ich das Problem korrekt?

Code: Alles auswählen

 
ForceDirectories ('L:\XXX\YYY\'DBEdit17.Caption);         //('L:\XXX\YYY\'DBEdit17.Caption)


Code: Alles auswählen

 
unit1.pas(586,96) Fatal: Syntax error, ")" expected but "identifier DBEDIT17" found
 


Vielen Dank vorab!

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Re: Anwendung soll Ordner erstellen

Beitrag von schnullerbacke »

Die Einfachmethode. 8)

Code: Alles auswählen

 
{$I+}
  ChDir(EditField.Text):
  if IOResult <> 0 then begin
    MkDir(EditField.Text);
  end;
{$I-}
 
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Requion
Beiträge: 106
Registriert: Mi 3. Feb 2016, 09:39
OS, Lazarus, FPC: Linux(Arch Linux(+ARM)/Minibian) (L 1.6.0 FPC 3.0.0)
CPU-Target: 32/64Bit,ARM(RPi)
Wohnort: nahe Grimma

Re: Anwendung soll Ordner erstellen

Beitrag von Requion »

Hallo l0lhaxx,

irgendwie haut der dir (laut highlight) den ganzen string kaputt.
Probier es mal ohne das DBEdit.

Und zur zusammenführung von strings + benutzen.

Code: Alles auswählen

'String' + Edit1.Text
Mfg Requion

Das beste an Standards ist, dass es so viele davon gibt.

Lion
Beiträge: 186
Registriert: Mo 24. Mär 2014, 09:58

Re: Anwendung soll Ordner erstellen

Beitrag von Lion »

Ist das ganze Unicode fähig?

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Re: Anwendung soll Ordner erstellen

Beitrag von schnullerbacke »

Pardon!!

Code: Alles auswählen

 
{$I-}
  ChDir(Edit.Text);
  if IOResult <> 0 then begin
    ...
  end;
{$I+}
 


Sonst klappt vielleicht die Abfrage mit IOResult nicht. Da es normale Pascal-Strings sind macht er auch Unicode.
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Lion
Beiträge: 186
Registriert: Mo 24. Mär 2014, 09:58

Re: Anwendung soll Ordner erstellen

Beitrag von Lion »

Was bedeutet hier

Code: Alles auswählen

{$I-} bzw. {$I+}
?

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Re: Anwendung soll Ordner erstellen

Beitrag von schnullerbacke »

{$I-} = Schalte die Prüfung durch das System ab

{$I+} = Schalte Systemprüfung wieder ein

Normalerweise wird das Schiefgehen der Abfrage mit einer Exception durch das System beantwortet die man nicht abfangen kann. In IOResult steht in dem Fall nix und es gibt einen schweren Ausnahmefehler mit Programmabbruch. Durch das Abschalten kann man in IOResult(Systemvariable von Pascal) die Fehlernummer ermitteln und sehen was nicht richtig war.

Eleganter ist eine Exception, aber so geht es auf einfache Art auch. Man sollt das aber immer nur punktuell abschalten, also nicht am Anfang aus und bei Programmende ein. Sonst kommen keine Ausnahmefehler mehr und man sucht sich tot. :shock:
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

l0lhaxx
Beiträge: 89
Registriert: Di 8. Dez 2015, 09:20

Re: Anwendung soll Ordner erstellen

Beitrag von l0lhaxx »

so funktioniert es übrigens auch....

Code: Alles auswählen

 
ForceDirectories ('L:\Pfad\Pfad\Pfad\'+DBEdit17.Caption);

schnullerbacke
Beiträge: 1187
Registriert: Mi 13. Dez 2006, 10:58
OS, Lazarus, FPC: Winux (L 1.2.xy FPC 2.6.z)
CPU-Target: AMD A4-6400 APU
Wohnort: Hamburg

Re: Anwendung soll Ordner erstellen

Beitrag von schnullerbacke »

@lolhaxx

Jupp, aber in dem Fall wird das Verzeichnis erstellt wenn es nicht existiert. Mit der anderen Methode wird erst mal nur auf Vorhandensein getestet. Komplett sieht das dann eher so aus:

Code: Alles auswählen

 
  GetDir(PathPuffer);
{$I-}
  ChDir(Edit.Text);
{$I+}
  if IOResult <> 0 then begin
    // hier Verzeichnis anlegen
    MkDir(Edit.Text);
    ChDir(Edit.Text);
    // alles was du möchtest hier
  end;
  ChDir(PathPuffer); // und wieder ins Körbchen
 
Humor ist der Knopf, der verhindert, daß uns der Kragen platzt.

(Ringelnatz)

Antworten