| |
|
|
| Wegen el Carta uno eigenen Installers Yo así manch Expediente/Pfade Stringmanipulationsfunktionen geschrieben.
Einige su poste Yo hier, aber zuerst unos pocos DEFs de una Herrn Jörg Sellmeyer, welche Yo en el Profano-Foro fand. KompilierenMarcaSeparaciónDef CharCount(2) Int(Sub(Len(@$(1)),Len(translate$(@$(1),@$(2),""))))
Def VerzeichnisTiefe(1) Int(Sub(Len(@$(1)),Len(Translate$(@$(1),"\",""))))
Def PfadTeil(2) SubStr$(@$(1),@%(2),"\")Vorher sollte man die Verzeichnistiefe ermitteln
Def DateiName(1) SubStr$(@$(1),Add(VerzeichnisTiefe(@$(1)),1),"\")
Def DateiPfad(1) Translate$(@$(1),Add$("\",DateiName(@$(1))),"")
Def Home(0) Translate$(Upper$(Par$(0)),Upper$(FindFirst$(Par$(0))),"")
Hier algunos Procs de mi mittlerweile doch älterem Installer:
Diese Función erstellt por ejemplo un directorio c:estest2est3 auch entonces, si todavía garkein Directorio c:est oder c:estest2 son. Der Función kann sozusagen hemmungslos una a erstellendes Directorio transferencia voluntad, y incluso el Ort dorthin se erstellt. KompilierenMarcaSeparación
Proc void_CreatePath
Parámetros s$
declarar lw$
mientras que len (S$)
Let lw$=add$(lw$,Mid$(s$,1,add(1,len(substr$(S$,1,"")))) )
let s$=del$(s$,1,add(1,len(substr$(S$,1,""))))
if (lw$<>"")
MKDIR lw$
endif
wend
ENDPROC
Hier todavía unos pocos undokumentierte: KompilierenMarcaSeparación KompilierenMarcaSeparación KompilierenMarcaSeparación KompilierenMarcaSeparación KompilierenMarcaSeparación KompilierenMarcaSeparación KompilierenMarcaSeparación
Auch el Función [...] dürfte hier no fehlen. |
|
|
| |
|
|
|
| Hier ni kleine Zugabe, a Dateiendung auszutauschen.
KompilierenMarcaSeparación {$i}//file-extension-renamer by iF :-D
print changefileext("somefile.gif","ps")
waitinput
end
proc changefileext
parameters f$,e$
declare tmp$,i&,ii&
if len(f$)
ifnot instr(".",f$)
f$:=f$+"."+e$
else
repeat
i&+
tmp$:=substr$(f$,i&,".")
until not(len(tmp$))
sub i&,2
for ii&:=1 to i& do tmp$:=tmp$+substr$(f$,ii&,".")+"."
f$:=tmp$+e$
endif
endif
return f$
ENDPROC
|
|
|
| |
|
|
|
Sebastian König | Hola si,
bist Usted sicher, dass el Procedimiento void_makesuperpath el macht, qué Usted möchtest?
Yo habe veces getestet: KompilierenMarcaSeparación Das Ergebnis es doch determinado no así gewünscht...
Usted musst beachten, dass el Doppel-Backslashes sólo en Stringliteralen gültig son, no aber en Variables. Kurz: Ein Doppel-Backslash, el Usted en el código eintippst, es tatsächlich una einfacher Backslash.
Ejemplo:
c:estesthallo es tatsächlich: c:[TAB]est[TAB]esthallo y c:\test\test\hallo es tatsächlich c:estesthallo
Oder Yo el Procedimiento falso verstanden?
MfG
Sebastian |
|
|
| |
|
|
|
| Sí, hast Usted falso verstanden. El Procedimiento es no dafür como en Eingabefehler via Escapesequenzen auszubessern. Yo habe mich auch en el Descripción schlecht ausgedrückt.
El Procedimiento se tatsächlich simplemente sólo de una zwei hacer. Um mehr ging lo esta no, porque Yo otro Características hatte el no una pero después de zwei suchten.
Yo habe aber el Proc de el Programa genommen, en eventuellen Mißverständnissen de el Wege a ir.
En Pfadangaben via XPSE hay el qué Usted ansprichst via KompilierenMarcaSeparaciónoder incluso: KompilierenMarcaSeparación |
|
|
|
|
Sebastian König | Hola si,
ok .
[quote:871ef2f47c]En Pfadangaben via XPSE hay el qué Usted ansprichst via //xpse-source s$=c:est oraanchor:file [/quote:871ef2f47c] Sí, saber Yo. Yo finde lo ehrlich dijo aber wirklich einfacher, el Doppel-Backslash oder Franks Variante (einfacher Slash) a benutzen.
Komisch, dass el Thema así oft auftaucht...
MfG
Sebastian |
|
|
| |
|
|
|
| Nun, el el Thema así oft auftaucht wundert mich eigendlich bastante wenig. Wer en Hochsprachen Proggt es sólo geübt auch con solch Gegebenheiten como Escapesequenzen umzugehen, Profano-Progger son sin embargo zumeist Programmier-Einsteiger, para el el Thema oft una Falle darstellt.
Yo persönlich bin incluso Meinung, el el Escapesequenzen en Profano nix a suchen haben. Eher sería Yo verstehen si una #0, #13#10 etc. posible wäre. Yo habe antes dies con XPSE umzusetzen.
[quote:94aea63370=Sebastian König]Hola si,
Yo finde lo ehrlich dijo aber wirklich einfacher, el Doppel-Backslash oder Franks Variante (einfacher Slash) a benutzen.[/quote:94aea63370] Nun, por lo tanto es no. Lo va más daraum el uno simplemente vergißt. Und zwar el uno soebend una Pfad eingegeben ha. Wenn uno se also angewöhnt una :file anzusetzen, trägt dies simplemente dazu en, el uno lo tal vez weniger außer acht läst. Weil uno erinnert se tal vez a el SYMBOL :file. Sich a Slash oda Doppelslash erinnern es de psychologischer Sicht schwieriger, porque lo kein SYMBOL darstellt. Und en Anfängern kommt el sólo más -- cómo sí sieht -- para tragen.
Einfaches Gedankenspiel: Würe lo en Profano no posible ser, Cuerdas simplemente por anzugeben, pero wäre como una Función para normale Cuerdas nombre cadena(gogol), y para Archivos una file(c wäre el problema nie entstanden, porque cada spätestens después de el 1. Fehlschlag se erinnert el él file() a nutzen ha. Ein Indizienbeweiß dafür kann ser, el se todavía nie alguien beschwert ha el uno con cadena b#,0= no LONGS en el Zona packen kann. Es sólo schlüssig.
Bis denne, IF |
|
|
| |
|
|
|
Sebastian König | Hola si,
uno kann sicher muy largo darüber diskutieren ...
Lo stimmt, como Erinnerung, es Su :file wirklich bastante praktisch.
cadena() y file() fände Yo persönlich viel a umständlich. Besser sería Yo encontrar, si XProfan como otro Idiomas en no erkannten Escape-Sequenzen (como h en Deinem c:estesthallo) meckern sería. Dann lernt uno auch bastante rápidamente, dass el Backslashes nunmal un Sonderrolle haben.
Aber qué solls - así ha uno wenigstens qué para Reden...
MfG
Sebastian
P.S.: Statt #0, #13#10 sería Yo natürlich ooo (Oktal) y xhhh (Hexadezimal) favorisieren . |
|
|
| |
|
|
|
| [quote:64eb88146a=Sebastian König]Hola si, P.S.: Statt #0, #13#10 sería Yo natürlich ooo (Oktal) y xhhh (Hexadezimal) favorisieren .[/quote:64eb88146a] Jaja, stimmt ya.
Yo aber ya angemerkt, el Yo ESC-Seqs en Profano no para correcto halte. Das kommt me así una wenig antes como :stream en Basic. Mir es also no por lo tanto eventuell
s$=Hx41LLO escribir a puede, pero s$=H+#65+LLO+#13#10
Yup, IF |
|
|
| |
|
|
|
Sebastian König | Hola si,
[quote:905bcf7e0d]Mir es also no por lo tanto eventuell
s$=Hx41LLO escribir a puede, pero s$=H+#65+LLO+#13#10 [/quote:905bcf7e0d] ok, el wäre una gute Abkürzung para @chr$()!
MfG
Sebastian |
|
|
| |
|
|