CheckExtensionFromFile

Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

CheckExtensionFromFile

Beitrag von X360 Andy »

Hallo,

hier ein kleiner Code zum Überprüfen ob der Dateiname eine Dateiendung hat, wenn nicht setzt er diese.
Kann man denke ich immer mal wieder gebrauchen, da es dies ja nicht im Window Explorer integriert ist ( zum Glück )

Der Code macht aus einem Pfad wie diesem
C:\test

einen Pfad wie diesen wenn als Extension z. B. "txt" angegeben worden ist.
C:\test.txt

Code: Alles auswählen

Procedure.s CheckExtensionFromFile(FileName$, Extension$)
  If Not UCase(GetExtensionPart(FileName$)) = UCase(Extension$)
    Filename$ + "." + Extension$
  EndIf
  ProcedureReturn FileName$
EndProceduree
Gruß Andreas
Zuletzt geändert von X360 Andy am 11.07.2010 22:01, insgesamt 1-mal geändert.
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Re: CheckExtensionFromFile

Beitrag von ts-soft »

Das Define ist vollkommen überflüssig, da die Variablen ja bereits als Parameter bekannt gemacht werden.
Ich hab es mal umgearbeitet, wobei die passende PB-Funktion genutzt wird und der Vergleich
nicht mehr Casesensitiv ist.

Code: Alles auswählen

Procedure.s CheckExtensionFromFile(FileName$, Extension$)
  If Not UCase(GetExtensionPart(FileName$)) = UCase(Extension$)
    Filename$ + "." + Extension$
  EndIf
  ProcedureReturn FileName$
EndProcedure
Gruß
Thomas
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Re: CheckExtensionFromFile

Beitrag von X360 Andy »

Stimmt ich depp ... pb hat ja die Funktion GetExtensionPart (Diese benütz ich auch sonst immer :lol: )

Hab dein Code mal übernommen
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 7032
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: CheckExtensionFromFile

Beitrag von STARGÅTE »

Naja n zimlich kleiner "Trick" ^^

Da der Code für "meine Ansprüche" nicht ausreichend ist. habe ich ihn etwas verändert.

- Punkte am Ende des Namens werden automatisch Ge-Trim't
- mehrere mögliche Dateiänderungen werden zugelassen.

Code: Alles auswählen

Procedure.s CheckExtensionFromFile(FileName$, Extension$)
  Protected i = 1
  While StringField(Extension$, i, "|")
    If UCase(GetExtensionPart(FileName$)) = UCase(StringField(Extension$, i, "|"))
      ProcedureReturn FileName$
    EndIf
    i + 1
  Wend
  ProcedureReturn Trim(Filename$, ".") + "." + StringField(Extension$, 1, "|")
EndProcedure 

Debug CheckExtensionFromFile("Test.pb", "pb|pbi")
Debug CheckExtensionFromFile("Test.pbi", "pb|pbi")
Debug CheckExtensionFromFile("Test.", "pb|pbi")
Debug CheckExtensionFromFile("Test", "pb|pbi")
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Antworten