Français
Source/ Codesnippets

Dateipfade Stringmanipulation

 
à cause de dem écrivons eines eigenen Installers habe je so manch Dossier/Pfade Stringmanipulationsfunktionen geschrieben.

quelques en Poste je ici, mais d'abord un paire DEFs de einem Herrn Jörg Sellmeyer, quelle je im Profan-Forum fand.
KompilierenMarqueSéparation
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))),"")



ici quelques Procs aus meinem mittlerweile doch älterem Installer:

cet Funktion erstellt beispielsweise un Verzeichnis c:estest2est3 aussi ensuite, si es encore garkein Verzeichnis c:est ou bien c:estest2 gibt. qui Funktion peux sozusagen hemmungslos un trop erstellendes Verzeichnis transfert volonté, et selbst qui lieu dorthin wird erstellt.
KompilierenMarqueSéparation
Proc void_CreatePath

    Paramètres s$
    declare lw$

    tandis que len (S$)

        Laisser lw$=add$(lw$,Mid $(s$,1,add(1,len(substr$(S$,1,»)))) )
        let s$=del$(s$,1,add(1,len(substr$(S$,1,»))))

        si (lw$<>»)

            MKDIR lw$

        endif

    Wend

ENDPROC




ici encore un paire undokumentierte:
KompilierenMarqueSéparation
KompilierenMarqueSéparation
KompilierenMarqueSéparation
KompilierenMarqueSéparation
KompilierenMarqueSéparation
KompilierenMarqueSéparation
KompilierenMarqueSéparation

aussi qui Funktion [...]  pourrait ici pas manquer.
 
15.04.2004  
 



ici encore une kleine Zugabe, à Dateiendung auszutauschen.

KompilierenMarqueSéparation
 {$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
allô iF,

es Du sûrement, dass qui Procédure void_makesuperpath cela fait, quoi Du vouloir?

j'ai la fois getestet:
KompilierenMarqueSéparation
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

cela Ergebnis mais est bestimmt pas so gewünscht...

Du musst tenir compte de, dass qui Doppel-Backslashes seulement dans Stringliteralen gültig sommes, pas mais dans Variablen. Kurz: un Doppel-Backslash, den Du dans den Code eintippst, ist réellement un einfacher Backslash.

Beispiel:

c:estesthallo ist réellement: c:[TAB]est[TAB]esthallo et
c:\test\test\allô ist réellement c:estesthallo

ou bien habe je qui Procédure faux verstanden?

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
21.07.2004  
 



oui, la hâte Du faux verstanden. qui Procédure ist pas pour là um Eingabefehler via Escapesequenzen auszubessern. j'ai mich aussi dans qui Beschreibung mal ausgedrückt.

qui Procédure soll réellement simple seulement aus einem deux faire.
Um plus ging es dabei pas, weil je autre Funktionen hatte qui pas pour einem mais pour deux suchten.

j'ai mais qui Proc aus dem Programme pris, um eventuellen Mißverständnissen aus dem Wege pour aller.

chez Pfadangaben via XPSE gibt es cela quoi Du ansprichst via
KompilierenMarqueSéparation
//xpse-source
s$="c:	est
oraanchor":filepre>
ou bien sogar:
KompilierenMarqueSéparation
 {$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
allô iF,

ok .

[quote-part:871ef2f47c]chez Pfadangaben via XPSE gibt es cela quoi Du ansprichst via //xpse-source
s$=c:est
oraanchor:file [/quote-part:871ef2f47c]
oui, kenne je. je trouve es à vrai dire mais wirklich einfacher, den Doppel-Backslash ou bien Franks variante (einfacher Slash) trop benutzen.

Komisch, dass cela Thema so souvent auftaucht...

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
21.07.2004  
 



eh bien, cela cela Thema so souvent auftaucht wundert mich eigendlich droite wenig.
qui dans Hochsprachen Proggt ist arrêt geübt aussi avec solch Gegebenheiten comment Escapesequenzen umzugehen, Profan-Progger sommes cependant zumeist Programmier-Einsteiger, pour qui cela Thema souvent une piège darstellt.

je personnelle suis sogar qui attitude, cela qui Escapesequenzen dans Profan nix trop chercher avons. plutôt serait je comprendre si un #0, #13#10 etc. possible wäre. j'ai avant ca avec XPSE umzusetzen.

[quote-part:94aea63370=Sebastian König]allô iF,

je trouve es à vrai dire mais wirklich einfacher, den Doppel-Backslash ou bien Franks variante (einfacher Slash) trop benutzen.[/quote-part:94aea63370]
eh bien, tout autor ca va pas. und dir plutôt daraum cela on simple vergißt. et zwar cela on soebend une Pfad eingegeben hat. si on sich alors angewöhnt un :file anzusetzen, trägt ca simple en supplément chez, cela on es peut-être moins sauf huit läst. Weil on erinnert sich peut-être à cela SYMBOL :file. Sich à Slash oda Doppelslash erinnern ist aus psychologischer Sicht schwieriger, weil es ne...aucune SYMBOL darstellt. et chez Anfängern venez cela arrêt plutôt -- comment on oui sieht -- zum tragen.

Einfaches Gedankenspiel: Würe es dans Profan pas possible son, Cordes simple per anzugeben, mais wäre là une Funktion pour normale Cordes nommé string(gogol), et pour Fichiers un file(c wäre cela Problem nie entstanden, weil chacun au plus tard pour dem 1. insuccès sich erinnert cela il file() trop nutzen hat. un Indizienbeweiß pour peux son, cela sich encore nie quelqu'un beschwert hat cela on avec string b#,0= aucun LONGS dans den Bereich saisir peux. c'est arrêt schlüssig.

jusqu'à denne, iF
 
21.07.2004  
 




Sebastian
König
allô iF,

il peut sûrement très longtemps par-dessus diskutieren ...

Es stimmt, comme Erinnerung, ist Dein :file wirklich entier pratique.

string() et file() fände je personnelle viel trop compliqué. Besser serait je es trouver, si XProfan comment autre Sprachen chez pas erkannten Escape-Sequenzen (comment h dans Deinem c:estesthallo) rouspéter serait. ensuite lernt on aussi droite vite, dass qui Backslashes nunmal une Sonderrolle avons.

mais quoi solls - so hat on wenigstens quoi zum Reden...

MfG

Sebastian

P.S.: Statt #0, #13#10 serait je naturellement ooo (Oktal) et xhhh (Hexadezimal) favorisieren .
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
21.07.2004  
 



[quote-part:64eb88146a=Sebastian König]allô iF,
P.S.: Statt #0, #13#10 serait je naturellement ooo (Oktal) et xhhh (Hexadezimal) favorisieren .[/quote-part:64eb88146a]
Jaja, stimmt déjà.

je hab mais déjà angemerkt, le moi ESC-Seqs dans Profan pas pour richtig halte. cela venez mir so un peu avant comment :stream dans Basic. Mir ca va alors pas tout autor eventuell

s$=Hx41LLO écrivons trop peut, mais s$=H+#65+LLO+#13#10

Yup, iF
 
21.07.2004  
 




Sebastian
König
allô iF,

[quote-part:905bcf7e0d]Mir ca va alors pas tout autor eventuell

s$=Hx41LLO écrivons trop peut, mais s$=H+#65+LLO+#13#10 [/quote-part:905bcf7e0d]
ok, cela wäre une gute abréviation pour @chr$()!

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
21.07.2004  
 



Zum Quelltext


Topictitle, max. 100 marque.
 

Systemprofile:

ne...aucune Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

s'il te plaît s'inscrire um une Beitrag trop verfassen.
 

Options du sujet

6.019 Views

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

Themeninformationen

cet Thema hat 2 participant:

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


Admins  |  AGB  |  Applications  |  Auteurs  |  Chat  |  protection des données  |  Télécharger  |  Entrance  |  Aider  |  Merchantportal  |  Empreinte  |  Mart  |  Interfaces  |  SDK  |  Services  |  Jeux  |  cherche  |  Support

un projet aller XProfaner, qui il y a!


Mon XProfan
Privé Nouvelles
Eigenes Ablageforum
Sujets-La liste de voeux
Eigene Posts
Eigene Sujets
Zwischenablage
Annuler
 Deutsch English Français Español Italia
Traductions

protection des données


Wir verwenden Cookies seulement comme Session-Cookies à cause de qui technischen Notwendigkeit et chez uns gibt es aucun Cookies de Drittanbietern.

si du ici sur unsere Webseite klickst ou bien navigierst, stimmst du unserer Erfassung de Informationen dans unseren Cookies sur XProfan.Net trop.

Weitere Informationen trop unseren Cookies et en supplément, comment du qui Kontrolle par-dessus behältst, findest du dans unserer nachfolgenden Datenschutzerklärung.


d'accordDatenschutzerklärung
je voudrais keinen Cookie