Encoder für ungültige Zeichen im Dateinamen

Für allgemeine Fragen zur Programmierung mit PureBasic.
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Encoder für ungültige Zeichen im Dateinamen

Beitrag von stevie1401 »

Ich möchte für einen User einen eigenen Dateinamen erstellen.
Leider gibt es ungültige Zeichen im Namen des Users.
Z.B. "Sören%&*33"
Deshalb kann ich keine Datei mit dem Namen: "Sören%&*33.txt" erstellen.
Gibt es einen En- und Decoder, der das möglich macht?
Oder hat jemand eine andere Lösung parat?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
Bisonte
Beiträge: 2467
Registriert: 01.04.2007 20:18

Re: Encoder für ungültige Zeichen im Dateinamen

Beitrag von Bisonte »

suche dir eine Liste mit Zeichen, die nicht in Filenamen vorkommen dürfen für dein Betriebssystem/Filesystem
und ersetze im dateinamen einfach alle diese zeichen durch ein von dir bestimmtes zeichen.

ReplaceString() ist hier die Anlaufstelle in der Hilfe.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
SMaag
Beiträge: 184
Registriert: 08.05.2022 12:58

Re: Encoder für ungültige Zeichen im Dateinamen

Beitrag von SMaag »

here is a link to a discussion how to remove NonWordCharacters.

With a little change this might solve your problem!

https://www.purebasic.fr/english/viewto ... ag#p604821
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Encoder für ungültige Zeichen im Dateinamen

Beitrag von stevie1401 »

Danke! Thank you :)
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
TroaX
Beiträge: 684
Registriert: 08.03.2013 14:27
Computerausstattung: PC: Ryzen 9 3950X, 96 GB RAM, RX6800XT, 2.5 TB SSD, 21:9 Display, Linux Mint | Lappi: Ryzen 7 5800H, 16 GB RAM, 1 TB SSD, Linux Mint
Wohnort: NRW
Kontaktdaten:

Re: Encoder für ungültige Zeichen im Dateinamen

Beitrag von TroaX »

Ich würde eher Whitelisting als Blacklisting verwenden. Nutze eher eine Liste an Zeichen, die du erlauben willst und ersetze alle anderen. Das hat 2 Vorteile. Die Liste kannst du auch selbst erstellen. Zum zweiten kannst du damit sicher alles ausschließen. Auch die, an die du nicht gedacht hast.

Wenn der Dateinamen nur technischen Hintergrund hat, dann nutze ich persönlich immer ein Hash. Der ist immer gültig und von Menschenhand schwerer zuweisbar, was je nach Anwendung ggf. die Sicherheit erhöhen kann.
PC: Ryzen 9 3950X | 96 GB RAM | RX6800XT | 2,5 TB NVMe | Linux Mint
Notebook: 16" 3:2 | Ryzen 7 5800H | 16 GB RAM | Radeon Vega | 1TB NVMe | Linux Mint
NAS: Fritz.Box 5690 Pro (Nur für Keepass-DB)
Coding: Purebasic, Spiderbasic, GDevelop, Javascript/Node
Benutzeravatar
helpy
Beiträge: 636
Registriert: 29.08.2004 13:29

Re: Encoder für ungültige Zeichen im Dateinamen

Beitrag von helpy »

Alternativ eine eindeutige ID für jeden Benutzer erstellen und die ID als Dateiname verwenden.

... oder bei der ersten Vergabe des User-Namen grundsätzlich nur solche Zeichen zulassen, die auch für Dateinamen verwendet werden können.

Dann erspart man sich das codieren von Zeichen.
Windows 10
PB Last Final / (Sometimes testing Beta versions)
stevie1401
Beiträge: 700
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Encoder für ungültige Zeichen im Dateinamen

Beitrag von stevie1401 »

Lauter tolle Ideen! Danke!
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Antworten