Saga Geschrieben 24. April 2002 Geschrieben 24. April 2002 Hallo zusammen, auch wenn's wahrscheinlich eine popelige Angelegenheit ist...aber ich bin nun mal Delphi-Anfänger und mir rauchen schon die Finger vom "Delphi-Kochbuch" wühlen. Also, folgendes Problemchen: Ich habe z.B. eine Datei die "Anreiseliste.rpt" heisst. In meiner Tabelle will ich den Namen des Berichts -nämlich "Anreiseliste"- speichern, das Dateiformat interessiert mich dabei herzlich wenig. Wie schaffe ich es, den String so auseinander zu nehmen, dass ich nur noch den Text vor dem ".rpt" übrig habe? Wär nett wenn's jemand weiss...ich geh jetzt Wasser holen und lösche den Kabelbrand im Gehirn. Bye, Saga Zitieren
progmaker Geschrieben 24. April 2002 Geschrieben 24. April 2002 Versuch's mal hiermit: Datei := Copy(Dateiname, Pos('.', Dateiname), Length(Dateiname) - Pos('.', Dateiname) In der Hilfe kannst du nachschlagen, was die einzelnen Funktionen machen. Zitieren
Saga Geschrieben 24. April 2002 Autor Geschrieben 24. April 2002 Oh, cool...das ging ja fix. *freu* Danke!! Zitieren
MarcG Geschrieben 24. April 2002 Geschrieben 24. April 2002 äh, war das nicht gerade vollkomener Quatsch ? Sollte es nicht eher Name := Copy(Dateiname, 1, Pos('.', Dateiname)) sein ? Mit Datei := Copy(Dateiname, Pos('.', Dateiname), Length(Dateiname) - Pos('.', Dateiname) kopierst du von der Stelle '.' bis zur Stelle (Länge des Strings-Stelle'.'), also z.B. beim String 'Irgendwas.abc' würdest du von der Stelle 10 '.' bis zur Stelle 3 'g' kopieren (Falls er rückwärts überhaupt kopiert) Zitieren
lpd Geschrieben 24. April 2002 Geschrieben 24. April 2002 Original geschrieben von MarcG Sollte es nicht eher Name := Copy(Dateiname, 1, Pos('.', Dateiname)) sein ? Es sollte. Das andere Beispiel ist a) viel zu kompliziert (überflüssig) und dürfte es den letzten Teil, also den nicht gewünschten, kopieren. Zitieren
progmaker Geschrieben 24. April 2002 Geschrieben 24. April 2002 Oh Sorry, hab zu schnell geantwortet. Es sollte natürlich Copy(Dateiname, 1, Pos('.', Dateiname) heißen. Mein Beispiel gibt nur die Dateierweiterung zurück. Sorry nochmal. Zitieren
MarcG Geschrieben 24. April 2002 Geschrieben 24. April 2002 Original geschrieben von Executioner Oh Sorry, hab zu schnell geantwortet. Es sollte natürlich Copy(Dateiname, 1, Pos('.', Dateiname) heißen. Mein Beispiel gibt nur die Dateierweiterung zurück. Sorry nochmal. aber auch dann wäre copy(Dateiname, Pos('.', Dateiname), Length(Dateiname)) weniger kompliziert gewesen und hätte das richtige Ergebnis gebracht :D Zitieren
Olli_Master Geschrieben 24. April 2002 Geschrieben 24. April 2002 Such mal in der Hilfe nach der Funktion ExtractFileName(...). Die ist für soetwas da - ganz ohne stress. Zitieren
Saga Geschrieben 24. April 2002 Autor Geschrieben 24. April 2002 Also meine Lösung schaut jetzt so aus: Copy(Dateiname,1,length(Dateiname)-length(ExtractFileExt)) Bei dem Ansatz mit Pos('.',Dateiname) etc. hatte ich das Problem, dass er mir nur die Dateiendung in das Feld geschrieben hat. Man kann sich jetzt drüber streiten ob das so umständlich ist oder nicht, aber so funktioniert's mal. Euch allen danke für die Hilfe!! Bye, Saga Zitieren
Saga Geschrieben 24. April 2002 Autor Geschrieben 24. April 2002 Original geschrieben von Olli_Master Such mal in der Hilfe nach der Funktion ExtractFileName(...). Die ist für soetwas da - ganz ohne stress. Mit der arbeite ich ohnehin schon, weil der Dateiname aus nem OpenDialog heraus in die Tabelle geschrieben wird. Aber danke für den Tipp! Bye, Saga Zitieren
Saga Geschrieben 25. April 2002 Autor Geschrieben 25. April 2002 Mal noch was anderes: Ich hab ne Tabelle in der ich Gruppen anlege, denen unsere Kunden zugeordnet werden. Für die Kunden existiert ein extra Verzeichnis in dem deren Berichte etc. abgelegt sind. Jetzt will ich jedes Mal wenn eine Gruppe neu angelegt wird in dem Verzeichnis auch einen neuen Unterordner mit dem Gruppennamen anlegen. Frage: Wie setzt man sowas um? Und kann ich das auf das After-Insert-Ereignis der DBGrid legen? Bye, Saga Zitieren
progmaker Geschrieben 25. April 2002 Geschrieben 25. April 2002 Einen neuen Ordner legt man mit CreateDir an. Mit ForceDirectories legst du mehrere Unterordner an. Ob du das Ereignis nutzen kannst, weiss ich nicht. Zitieren
lpd Geschrieben 25. April 2002 Geschrieben 25. April 2002 Original geschrieben von Saga Und kann ich das auf das After-Insert-Ereignis der DBGrid legen? Das After-Inser-Event müsste ausgelöst werden, nachdem du eine neue Zeile im Grid angelegt hast. Das Problem : In dem Moment hast du noch keine Daten. Dementsprechend kannst du diese Sache dort nicht lösen. Eventuell könnte es im After-Append-Event klappen, das weiß ich aber so jetzt nicht. Du kannst allerdings nachprüfen, wann ein Event ausgelöst wird, indem du es per Doppelklick erstellst, zwischen "begin" und "end" einen Kommentar einfügst ("//" reicht) und dann einen Haltepunkt auf "begin" legst. Zitieren
Saga Geschrieben 25. April 2002 Autor Geschrieben 25. April 2002 Original geschrieben von elpedre Das After-Inser-Event müsste ausgelöst werden, nachdem du eine neue Zeile im Grid angelegt hast. Das Problem : In dem Moment hast du noch keine Daten. Ich werd's auf das After-Post-Ereignis legen. Hatte da nen kleinen Denkfehler...ich hab nicht daran gedacht, dass man den Insert ja in dem Moment macht, in dem man beim Navigator auf das + klickt. *peinlich* Danke euch beiden! Bye, Saga Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.