Hirdetés

Keresés

Új hozzászólás Aktív témák

  • mezis
    félisten

    Igen ebben igazad van.
    Viszont ez a pár sor csak egy része egy nagyobb programnak, ami a végén sorba rendezi a talált sorszámokat illetve később szelektál. Az a gond, hogy a sorba rendezésnél megakadtam, pedig nagyon egyszerű lenne.
    A lényeg, hogy van 2 tömb amiben vannak tárolt adatok.
    masolander(I)
    346
    1096
    5600
    6826
    8301
    10205
    11611
    12035
    13523
    14663
    15640

    Második tömb:
    ker_hatar(l_j)
    400
    1150
    9654

    Ezeket kellene rendeznie, úgy hogy a kapott érték ez legyen:
    Eredmény
    400
    1150
    6826
    8301
    9654
    11611
    12035
    13523
    14663
    15640
    16617

    I = 0
    j = 0

    For I = 0 To talalat

    If masolander(I + 1) < ker_hatar(j) Then
    vegleges_hatar(I) = ker_hatar(j)
    Cells(16 + I, 4) = I & ". " & vegleges_hatar(I) & " |" & ker_hatar(j) & " 1< " & masolander(I + 1)
    j = j + 1

    Else
    vegleges_hatar(I) = masolander(I + 1)
    Cells(16 + I, 4) = I & ". " & vegleges_hatar(I) & " |" & ker_hatar(j) & " 2> " & masolander(I + 1)

    End If

    Next

    Nem tudom, hogy ebben mit rontottam el...

  • mezis
    félisten

    A ? a gond, az ugye érvénytelen karakter a fájl/mappanévben. Unicode támogatás nem Unicode nyelvekhez XP+ rendszereken van, Vezérlőpult nyelvi beállítások (W7: Vezérlőpult>Óra,Nyelv és terület>Másik billentyűzet vagy beviteli módszer megadása>Felügyelet fül alsó része), de nem tudom, segítene-e.
    Hibakezelés az On Error és Goto :)

    A Cirill betűs támogatás rendben van, az intéző is ezért tudja megjeleníteni. Cirill betűs billentyűzetet is tudtam készíteni. (Ezt a Win7 még akkor rendezte, amikor az Opera böngésző szembetalálta magát egy orosz WEB oldallal.)

    Az MS táblázatkezelőjével és a LibreOffice-el is be tudom másolni a táblázatba ezt a Cirill betűs file nevet.

    Most már biztos vagyok benne, hogy ez a "DOS közeli" szoftverek (VBS, Notepad2) problémája, amivel bizonyára az MS sem óhajt foglalkozni. Nekem sikerült úgy megoldanom, hogy a listázásból kimaradt alkönyvtárakra egyesével lefuttattam a programomat és az eredményeket "hozzászerkesztettem" félbemaradt lista file-hoz. A jövőben kerülni fogom a problémát okozó file nevek használatát.

  • mezis
    félisten

    Sajnos a konzolablak ASCII valami, pl. magyar Windowson 852-es kibővített kódtábla, így a Unicode->nemzeti ASCII konverzió során bármi kerülhet a fájlnévbe.
    Segíthet, ha dir /s paranccsal kilistáztatod az adott könyvtárakat, és megnézed, mivé lesz a cirill karakter.
    Ha ott jónak tűnik, ideiglenesen cseréld le a rekurzív
    listFiles objSubFolder.path
    sort
    MsgBox objSubFolder.path
    sorra, és nézd meg, mi jelenik meg.

    Bónusz: nézd át a hibakezelést, és egy hibaüzenet megjelenítésével lépj át a problémás alkönyvtárakon :)

    Még mielőtt bármi bekerülhetne a file névbe, ledöglik. Az alkönyvtárban a legutolsó helyen van a névsorban a Cirill betűs file. Az összes többi file neve bekerül a listába.

    (MsgBox esetén is file-ba kerül egy ugyanolyan lista. Valószínű, hogy csiki/csuki-t kellene játszanom a lista file-lal, de nem hiszem, hogy a monitorra más karakter, illetve egyáltalán kerülne valami is a Cirill betűkből.)

    A DOS dir parancsa a cirill betűk helyett ? jeleket tesz. Most vettem észre, hogy a file nevének a vége latin karakterekből áll ! A DOS dir ezeket helyesen jeleníti meg a kérdőjelek után. Ugyanígy jártam, amikor a Win vágólapról a Notepad2-vel szerkesztett szövegfile-ba "kézzel" másoltam be a cirill betűs file nevet

    Hibakezelést hol lehet nézni ?

  • mezis
    félisten

    Üdv.!

    Dupla kattintással remekül működik a VBS script programom, amely CD, DVD, vagy bármelyik alkönyvtár nyilvántartását írja ki egy .csv file-ba. Mindaddig, amíg nincs abban az alkönyvtárban egy cirill betűs file név (РадиоКот __ Радиометрический дозиметр GreenRay.mht).

    A hibaüzenet ez:

    Kivédhető ez valahogy ?

    (A vastagon kiemelt utasításba döglik bele.)

    Function listFiles(strFolder)

    If objFileSystem.FolderExists(strFolder) Then
    Set objFolder = objFileSystem.GetFolder(strFolder)
    For Each objFile In objFolder.Files

    objCsvFile.Write objFile.Name & ";" & objFolder.Path & vbNewLine

    Next
    For Each objSubFolder In objFolder.SubFolders

    listFiles objSubFolder.path

    Next
    Else
    MsgBox "A megadott " & strFolder & "mappa nem létezik !"
    End If
    End Function

    Bocs, most jöttem rá, hogy lehet programkódot is beilleszteni:

    Function listFiles(strFolder)

    If objFileSystem.FolderExists(strFolder) Then
    Set objFolder = objFileSystem.GetFolder(strFolder)
    For Each objFile In objFolder.Files

    objCsvFile.Write objFile.Name & ";" & objFolder.Path & vbNewLine

    Next
    For Each objSubFolder In objFolder.SubFolders

    listFiles objSubFolder.path

    Next
    Else
    MsgBox "A megadott " & strFolder & "mappa nem létezik !"
    End If
    End Function

  • mezis
    félisten

    Üdv.!

    Dupla kattintással remekül működik a VBS script programom, amely CD, DVD, vagy bármelyik alkönyvtár nyilvántartását írja ki egy .csv file-ba. Mindaddig, amíg nincs abban az alkönyvtárban egy cirill betűs file név (РадиоКот __ Радиометрический дозиметр GreenRay.mht).

    A hibaüzenet ez:

    Kivédhető ez valahogy ?

    (A vastagon kiemelt utasításba döglik bele.)

    Function listFiles(strFolder)

    If objFileSystem.FolderExists(strFolder) Then
    Set objFolder = objFileSystem.GetFolder(strFolder)
    For Each objFile In objFolder.Files

    objCsvFile.Write objFile.Name & ";" & objFolder.Path & vbNewLine

    Next
    For Each objSubFolder In objFolder.SubFolders

    listFiles objSubFolder.path

    Next
    Else
    MsgBox "A megadott " & strFolder & "mappa nem létezik !"
    End If
    End Function

  • mezis
    félisten

    ember, ha írtad volna, hogy dupla kattintással futtatod, azzal sokat segítettél volna. A megoldásom jó, csak fel sem tételeztem, hogy nem cscript-tel futtatod a VBS-ed.

    Kibővítettem a programomat WScript.echo "bármi" utasítással.
    Futtattam DOS ablakban, cscript.exe -vel, valóban írogat a DOS ablakba, várakozás nélkül.

  • mezis
    félisten

    A VbScript nem objektum orientált. Vagy ez poén akart lenni? Mert a hsz-edről végig nem tudtam eldönteni, hogy ez most komoly, vagy poén volt.
    Nem sértődtem meg, nem kell bocsánatot kérned.
    Windowsban nem komplikált képernyőre adatokat kiíratni, vbscriptben mondhatjuk komplikálnak, mert egyszerűen nem erre készült, vagy aki mégis erre akarja használni, az cscript-tel futtatja :K
    Ha meg dupla kattintással akarod használni, akkor .hta-ként csináld meg a vbscriptedet, és akkor ismét könnyű lesz az adatokat kiíratni.

    Kinézete alapján fogtam rá, hogy objektum orientált. Vagyis számomra érthetetlenül túlkomplikált. :F Könyvhöz még nem jutottam hozzá, internetről próbáltam beletanulni a VBS programozásba. A legzavarosabb számomra az, hogy meddig VBS és honnan Visual Basic.
    Az MS-nek a honlapján folyton összezavarodtak (csak nekem ? :U ) az információk, az előbb még egyértelműen VBS magyarázat volt előttem, aztán egy óvatlan katintás után már lehet, hogy C#.)
    (Ja, elfelejtettem, hogy Commodore 64-en is írtam Basic nyelven programot. Innen gondoltam, hogy csak fog ez menni valahogy.)
    Meg arra gondoltam, hogy a makro programokról is illő lenne már egy keveset tudnom, ha egyszer már a PDP-8 TECO macrojában annak idején teljesen otthon voltam.

    A .hta -hoz jól gondolom, hogy a HTML-en keresztül vezet egy bizonyára göröngyös út ?
    (A WEB lap készítésbe is bele kellene már csapni, kezd ciki lenni, lassan már a nagycsoportosok is csinálják az oviban.)

    Átolvastam már néhány könyvet Java, C, Webvilág) a mostanában elterjedt nyelvekről, sajnos azt tapasztaltam, hogy a Lőcs Gy. Fortran IV, könyvével ellentétben egyik sem egy komplett leírás, hanem vagy az elejéből, vagy a "magasabb" részéből ír le valamennyit.
    A Clipper5-öt is rongyosra olvastam, miközben folyamatosan fejlesztettem a programjaimat, de ott is tapasztaltam, hogy nem mindig komplett egy utasítás, fv. leírása.

  • mezis
    félisten

    ember, ha írtad volna, hogy dupla kattintással futtatod, azzal sokat segítettél volna. A megoldásom jó, csak fel sem tételeztem, hogy nem cscript-tel futtatod a VBS-ed.

    Bocs ! :o

    Akkor most inkább gyorsan bevallom, hogy Algol-68, Fortran IV -el kezdtem a programírást, script nyelvnek a Focal meg a TECO-macro volt. A PC-ken meg a FoxBase, Clipper volt számomra elérhető. Ez utóbbiról (illetve az MS-DOS ]dir parancsáról) is csak azért váltottam egy ilyen hiper/szuper csilivilire, mert a Windows ékezetes karakterei nem stimmelnek az MS-DOS karaktereivel

    Azon meglepődtem, hogy milyen komplikált Windowsban megoldani a képernyőre való kiírás várakozás nélkül. (Gondoltam ott marad nyitva az ablak, majd becsukja akit zavar.)

    Az programot (és elődjeit) CD, DVD tartalmak nyilvántartására használom. Egy alkönyvtárban gyűjtöm az ilyen file-okat, melyeknek a neve azonos CD, DVD nevével.
    Keresésre az intéző keresőjét használom. Ez egy újabb, remek lehetőség, hogy a csv file-t meg tudja nyitni pl. táblázat kezelő is.

    A dupla kattintásos indítás külön jól jön, ha az ismerősöm is használni fogja.

    Tegnap már próbálgattam a cscript.exe -vel való futtatást, a jelenlegi verzió ugyanúgy fut, sajnos az echo utasítást már eltüntettem belőle. Késő volt és már fáradt voltam. Nagyon kimerít engem ez az objektum orientált programozás. :F :U

    Köszönöm a tanácsokat ! :R

  • mezis
    félisten

    Nem mindegy, melyik hosttal futtatod a vbscript-et, WScript-el vagy CScript-el!

    Az echo eljárás doksija szerint wscript hosttal dialógusablak, cscript-el futtatva egy sort ad vissza a konzolablakba.

    Nem válogattam a VBS program futtatójában, dupla klikkre a WScript.exe-t indította el.
    ArchElf segítségével megoldottam a kijelzést. Legközelebb kipróbálom a CSript-el.

  • mezis
    félisten

    Nyiss egy IE ablakot és abban közöld a státuszt. Ha lefut az alkalmazás az ablakot be is tudod zárni: [link]

    AE

    Köszönöm ! :R

    Így már sikerült megoldani, hogy ne a billentyűzet LED-jeinek a villogása jelezze a VBS program tevékenységét.

  • mezis
    félisten

    VBScript-nél a wscript.echo parancsot javaslom használni. Ez a konzol ablakba kiírja amit ki akarsz iratni.

    wscript.echo "hello world"

    Sajnos azt is kiírja, amit nem szeretnék: "OK", és nem találom, hogyan tudnám ezt elhagyatni vele.

  • mezis
    félisten

    Üdv.!

    Szeretnék a monitoron információt megjeleníteni a futó VB script program állapotáról. Amit eddig találtam ,az a MsgBox strFolder, 64 függvény, aminél sajnos legalább az "OK" gombot nem tudom elhagyni, ezzel viszont a program várakozik amíg nem klikkelek.

    Oda-vissza végignéztem az összes funkciót, lehetséges paramétereit, file-ba tudnék írni, de a monitorra nem. (Igaziból a dobozra sem lenne szükségem, csak egy sorra, amit állandóan felülírhatok az aktuálisan feldolgozott alkönyvtár nevével, vagy egy sorszámmal, aktuális idővel...)

    A VB Script programot a CHIP magazin 2008 júliusi számából másoltam ki, csekély módosítással a DVD olvasóban lévő DVD file-jait listázza egy csv file-ba. Ezt a kijelzést azért szeretném beletenni, mert igen lassan fut, a DVD olvasó LED-je se jelez vissza és jó lenne, ha információt kapnék arról, hogy rendben dolgozik.

Új hozzászólás Aktív témák

Hirdetés