Español
Fuente/ Codesnippets

Dateipfade Stringmanipulation

 
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ón
Def 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.
 
15.04.2004  
 



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

 
21.07.2004  
 




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
proc void_makesuperpath

    parameters s$
    declare i%
    i%=0

    while lt(i%,len(s$))

        add i%,1

        if equ$(mid$(s$,i%,1),"")

            s$=ins$("",s$,i%)
            add i%,1

        endif

    wend

    return s$

endproc

cls
print void_makesuperpath("c:	est	esthallo")
waitkey

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
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
21.07.2004  
 



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ón
//xpse-source
s$="c:	est
oraanchor":filepre>
oder incluso:
KompilierenMarcaSeparación
 {$iq}//simply demo to demonstrate xpses "Filestring"-directive
case "	est
oe":file<>"	est
oe":print "it works :)"
case "	est
oe":file=="	est
oe":file:print "it works again:)"
print "filename: C:
q	":file
print "escaped : C:
q	"
21.07.2004  
 




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
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
21.07.2004  
 



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
 
21.07.2004  
 




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 .
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
21.07.2004  
 



[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
 
21.07.2004  
 




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
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
21.07.2004  
 



Zum Quelltext


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

6.046 Views

Untitledvor 0 min.
Sven Bader24.09.2021
Björn Haupt20.05.2021
Georg06.04.2020
Andre Rohland19.02.2018
Más...

Themeninformationen

Dieses Thema ha 2 subscriber:

unbekannt (5x)
Sebastian König (4x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie