Seite 1 von 2
Schöne Ordner
Verfasst: 08.11.2005 16:41
von Batze
Code: Alles auswählen
OpenWindow(0, 0, 0, 200, 0, #PB_Window_MinimizeGadget, "Anzahl = ")
string.s = InputRequester("Gib einen Text ein!", "Gib ein:", "")
Name.s = "C:"
For i=0 To Len(string)
string = ReplaceString(string, " ", "_")
string = ReplaceString(string, "\", "_")
string = ReplaceString(string, "/", "_")
string = ReplaceString(string, ":", ".")
string = ReplaceString(string, "*", "x")
string = ReplaceString(string, "?", "!")
string = ReplaceString(string, Chr('"'), "''")
string = ReplaceString(string, "<", "-")
string = ReplaceString(string, ">", "-")
string = ReplaceString(string, "|", "-")
Next
i=0
Repeat
i+1
Name + "\" + Mid(string, i, 1)
CreateDirectory(Name)
SetWindowTitle(0, "Anzahl = " + Str(i))
Until WindowEvent() = #PB_Event_CloseWindow Or i >= Len(string)
RunProgram("", Name, Name)
Ist zwar für die Praxis ziemlich unnütz, aber hübsch.

Verfasst: 08.11.2005 17:22
von AND51
Was bewirkt das?
Verfasst: 08.11.2005 18:09
von freedimension
Mir ist der Sinn von der For-Schleife noch nicht so ganz klar

Ist aber auch schon spät und nach neun Stunden Arbeiten übersieht man ja gerne mal eine Kleinigkeit

Verfasst: 08.11.2005 19:54
von Laurin
Der Code ersetzt die ganzen unerlaubten Zeichen einer Datei durch erlaubte Zeichen.
ZB das:ist>cool.txt wird zu das.ist_cool.txt
Kapiert?

Verfasst: 08.11.2005 19:58
von freedimension
Laurin hat geschrieben:Der Code ersetzt die ganzen unerlaubten Zeichen einer Datei durch erlaubte Zeichen.
ZB das:ist>cool.txt wird zu das.ist_cool.txt
Kapiert?


Schon kapiert, aber warum macht er das so oft wie Zeichen im String drinnen sind?

Verfasst: 08.11.2005 20:02
von MVXA
Vor allem kann man die Funktion stark optimieren

.
Verfasst: 08.11.2005 20:03
von Laurin
Das frage ihn am besten selber, ich weiß das auch nicht

Verfasst: 08.11.2005 20:04
von ts-soft
>> Schon kapiert, aber warum macht er das so oft wie Zeichen im String drinnen sind?
Viel schlimmer finde ich, das er bei einem nicht vorhandenem Anfängt, bei 0
Eine ähnliche Funktion entstand mal in Zusammenarbeit mit Franky und MVXA. Die kürzt einen String auf eine gültige PB Variable.
Code: Alles auswählen
Procedure.s MakePBVariable(p_string.s)
*wert.BYTE = @p_string
p_string2.s = Space(Len(p_string))
*wert2.BYTE = @p_string2
p = *wert2
Repeat
If *wert\b = 95 Or (*wert\b > 64 And *wert\b < 91) Or (*wert\b > 96 And *wert\b < 123)
*wert2\b = *wert\b
*wert2 + 1
EndIf
*wert + 1
Until p <> *wert2 Or *wert\b = 0
While *wert\b <> 0
If *wert\b = 95 Or (*wert\b > 47 And *wert\b< 58) Or (*wert\b > 64 And *wert\b < 91) Or (*wert\b > 96 And *wert\b < 123)
*wert2\b = *wert\b
*wert2 + 1
EndIf
*wert + 1
Wend
ProcedureReturn Trim(p_string2)
EndProcedure
Bissel ändern ist aber noch erforderlich

Verfasst: 08.11.2005 22:02
von Kiffi
Code: Alles auswählen
Procedure.s ReplaceInvalidCharsFromFilename(sFilename.s)
sInvalidChars.s = "\/:*?<>|" + Chr(34)
For lCounter = 1 To Len(sInvalidChars)
sFilename = ReplaceString(sFilename, Mid(sInvalidChars,lCounter,1), "_")
Next ; lCounter
ProcedureReturn sFilename
EndProcedure
Grüße ... Kiffi
Verfasst: 08.11.2005 22:21
von ts-soft
Da werden ja nur 8 Zeichen berücksichtigt, wenn man alle ungültigen ASCII Zeichen berücksichten will, dauert das zu lange auf diese Weise.