Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Namen der Ini kleinschreiben (https://www.delphipraxis.net/3214-namen-der-ini-kleinschreiben.html)

Daniel B 28. Feb 2003 22:34


Namen der Ini kleinschreiben
 
Hallo,

wenn ich mir mit "ChangeFileExt(ParamStr(0), '.ini')" eine Ini erzeuge, dann ist der Name immer gross geschrieben, wie kann man dies ändern? Ohne immer selbst den Namen zu schreiben, es soll also in Form von "ChangeFileExt(ParamStr(0), '.ini')" bleiben.

Grüsse, Daniel :hi:

Christian Seehase 28. Feb 2003 23:01

Moin Daniel,

geht das bei Dir mit der Kleinschreibung, wenn Du die Datei manuell mit "Neu\Textdatei" anlegst?

Daniel B 28. Feb 2003 23:07

Moin Christian,

natürlich. //Oder etwa nicht natürlich?

Grüsse, Daniel :hi: //<-- Fragend

Christian Seehase 28. Feb 2003 23:16

Moin Daniel,

mir ist so in dunkler Erinnerung, ohne Gewähr allerdings, das dieses Verhalten einstellbar ist/war (unter 95???).
Deshalb die Frage.

Du könntest es ja einfach mal hiermit probieren:

Delphi-Quellcode:
AnsiLowerCase(ChangeFileExt(ParamStr(0), '.ini'));

nailor 28. Feb 2003 23:18

Siehe anderes Forum, versuchs mal mit Application.ExeName und dem ExtractFilePath davon.

Daniel B 28. Feb 2003 23:18

Moin Christian,

der war gut. Das schreibt schonmal alles klein. Aber auch wirklich alles!
Sprich auch den ersten Buchstaben. :shock: :roll:

Grüsse, Daniel :hi:

nailor 28. Feb 2003 23:22

Die "Mit-Kanone-auf-Spatzen-schieß-Methode" ginge mit FindFirst. Das gibt die genaue Schreibweise zurück!

Christian Seehase 28. Feb 2003 23:22

Moin Daniel,

dann eben so:

Delphi-Quellcode:
AnsiUpperCase(paramstr(0)[1])+AnsiLowerCase(copy(ChangeFileExt(paramstr(0),'.ini'),2,length(paramstr(0))));
:mrgreen:

Daniel B 28. Feb 2003 23:25

Zitat:

Zitat von Nailor
Die "Mit-Kanone-auf-Spatzen-schieß-Methode" ginge mit FindFirst. Das gibt die genaue Schreibweise zurück!

"Mit Spatzen auf Kanonen schiessen" Copyright by Luckie, heisst es. ;)
Meinst Du nciht das es jetzt langsam uferlos wird. Nur um den Blöden Namen zu schreiben? ;) Vielleicht sollte ich mir noch bei Win2k Rechte holen und dies über die Registry machen. :mrgreen:
Nee, Spass beiseite.
Das würde jetzt dann doch zu weit gehen. Es muss auch so gehen.
Delphi-Quellcode:
ini := TIniFile.Create(AnsiLowerCase(ChangeFileExt(ParamStr(0), '.ini')));
So lang ist die Zeile schon. Wie lang soll die denn noch werden?

Grüsse, Daniel :hi:

Christian Seehase 28. Feb 2003 23:27

Moin Daniel,

Dein ursprünglicher Wunsch war es den Dateiname in Kleinbuchstaben zu bekommen, das ginge mit der einmaligen Umwandlung.
Wenn Du jetzt den Anfang gross und den Rest klein haben willst, dann muss die Zeile eben so lang werden wie erforderlich ;-)

Daniel B 28. Feb 2003 23:28

Moin Christian,
Zitat:

Zitat von Christian Seehase
Delphi-Quellcode:
AnsiUpperCase(paramstr(0)[1])+AnsiLowerCase(copy(ChangeFileExt(paramstr(0),'.ini'),2,length(paramstr(0))));

:mrgreen: ROTFL :mrgreen:
Der war gut. Würde aber gehen denk ich. ;)

Grüsse, Daniel :hi:

Daniel B 28. Feb 2003 23:35

Hallo Christian,
Zitat:

Zitat von Daniel B
Würde aber gehen denk ich. ;)

Nee, nicht einmal. Der erste ist immernoch klein. Komisch, komisch, sollte doch stimmen. Sehe jedenfalls keinen Fehler.

Grüsse, Daniel :hi:

janjan 1. Mär 2003 14:06

Kuck dir die Ausgabe davon mal ganz genau an. Nicht der erste Buchstabe des Dateinamens wird groß geschrieben sondern der Laufwerksbuchstabe.

janjan 1. Mär 2003 14:13

So sollte es gehen:

Delphi-Quellcode:
ExtractFileDir(paramstr(0))+
'\'+
AnsiUpperCase(ExtractFileName(paramstr(0))[1])+
AnsiLowerCase(copy(ChangeFileExt(ExtractFileName(paramstr(0)),'.ini'),2,length(ExtractFileName(paramstr(0)))));

Christian Seehase 1. Mär 2003 14:33

Moin janjan,

da hast Du auch wieder recht :oops: :mrgreen:

Allerdings:
Es genügt als Längenangabe beim Copy length(paramstr(0)), da copy automatisch aufhört, sobald die maximal mögliche Länge erreicht ist.
Wenn Du dann noch statt ExtractFileDir ExtractFilePath verwendest sparst Du Dir noch ein +'\'. ;-)

Delphi-Quellcode:
ExtractFilePath(paramstr(0))+
AnsiUpperCase(ExtractFileName(paramstr(0))[1])+
AnsiLowerCase(copy(ChangeFileExt(ExtractFileName(paramstr(0)),'.ini'),2,length(paramstr(0))));

Daniel B 1. Mär 2003 14:50

Moin Christian,
Zitat:

Zitat von Christian Seehase
Delphi-Quellcode:
ExtractFilePath(paramstr(0))+
AnsiUpperCase(ExtractFileName(paramstr(0))[1])+
AnsiLowerCase(copy(ChangeFileExt(ExtractFileName(paramstr(0)),'.ini'),2,length(paramstr(0))));

Damit geht es. Natürlich wollte ich von anfang an das der erste Buchstabe gross ist, sieht ja sonst auch blöd aus. ;)
Aber es klappt wunderbar. Danke Dir!

Grüsse, Daniel :hi:

Christian Seehase 1. Mär 2003 15:43

Moin Daniel,

also der Dank gebührt aber janjan.

Ich hab' nur seinen Source etwas umgebaut.

Daniel B 1. Mär 2003 15:55

Stimmt ja. :oops:
Natürlich auch janjan vielen Dank. Sorry.

Allerdings muss ich noch was loswerden. Hoffentlich versohlt mir jetzt niemand den Popo, aber ich spiele ernsthaft mit dem Gedanken, einfach den Namen selbst zu schrieben und gut ist, dann ist der Befehl auch nicht drei Zeilen lang. :)

Grüsse, Daniel :hi:


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:29 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