VBS Ořeznuti řetězce   zodpovězená otázka

VB6/VBA

Zdravím.

Takto zjistin cestu k souboru.

path = wscript.scriptfullname

Jak ji však ořiznout

Když je třeba cesta C:\programy\mujprogram.vbs

Chtěl bych jen C:\programy\

To znamena ořizmout řetězec o 14 mist od zadu.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Opět jeden z těch podařených dotazů.

Chybí vám základní programátorské myšlení a to je docela problém pokud se chcete programování nějak věnovat.

Řešení je celá řada.. Jedno z možných je projet v cyklu celej string a kontrolovat znak '\' .. když to chcete oříznout za druhou \ tak si nekam uložíte index na kterým je ten druhý výskyt.

(teď mě napadá, že je funkce na hledaní znaku v řetezci, ale nevím zda hledá jen první výskyt, nebo může hledat zadanej výskyt)

Když už je někde uloženej ten index od kterýho to oříznout tak stačí použít metodu :-)

Nebo by se ještě dalo udělat že by do výsledného řetezce byly postupně načítany znaky vtom prvním cyklu, samozřejmě jen doté doby dokud by to vyhovovalo

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Další možný řešení, pomocí Splitu rozdělit string přes znak '\'. A pak spojit jen určitou část výsledného pole přes Join.

Vydíte že řešení je spousta.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Funkcí InStrRev si najděte pozici posledního lomítka v řetězci a pak funkcí Left vezměte jen znaky do toho lomítka.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Mně jen napadlo toto

a = wscript.scriptfullname

b=Len(a)

c=Left(a,b-9)

cesta = c & "MPR\MPR.exe"

Set WshShell = CreateObject("WScript.Shell")

wshshell.Run cesta,2,true

V A mam řetězec k cestě a = wscript.scriptfullname

Jak ho nejlepe ořiznout aby mi zutali jen první 3 znaky z leva a nemusel bych odčitat těch 9 znaku.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Možná se pletu, ale nejde to udělat rovnou přes System.Path.Něco ?

Memám zde VS, takže přesně neřeknu metodu, která to dělá, ale pouýíval jsem to a určitě to tam jě (něco jako getFileName nebo tak podobně)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

hej System.Path.niečo v VBS?

System.Path je trieda v .net frameworku, ktorá sice obsahuje podobné funkcie, ale povedzte mi ako k nej pristúpiť z VBS ?

Jediné, čo ma napadlo je urobiť COM wrapper k tej triede a potom cez dačo šialené vo VBS.A bude nutné ten COM wrapper zaregistrovať. Je to jednoduchšie?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Řešení tady padlo už dost, zjistěte si, co dělají funkce InStr, Left a Right a máte to.

Používat kvůli tomu .NET je nesmysl.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

A ja som písal niečo iné?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Skrze Scripting.FileSystemObject (FSO)

získáte parentfolder...

Taky název souboru, s příponou i bez,

samotnou příponu, drive, shortpath...

datum vyvoření, poslední změny aj.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback