Hirdetés

Keresés

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

  • #14595328
    törölt tag

    Sziasztok!

    VB-ben csináltam egy programot (.net3.5) és szeretném egy másik gépen is futtatni, de mindig csak azt írja ki, hogy hibát észlelt és leáll! Semmi extra nincs benne, form, xls-ből olvasás és txt-be írás. A célgépen fent van a .Net 3.5. A \bin-ből szedtem az exe-t. Telepíteni nem tudok, mert a másik gépen nincs adminom..

    Van Excel a másik gépen? Mikor olvass a program az xls-t?

    Rakj egy Try-Catch-et a Load eventbe, majd írassad ki a hibát.

  • martonx
    veterán

    Sziasztok!

    VB-ben csináltam egy programot (.net3.5) és szeretném egy másik gépen is futtatni, de mindig csak azt írja ki, hogy hibát észlelt és leáll! Semmi extra nincs benne, form, xls-ből olvasás és txt-be írás. A célgépen fent van a .Net 3.5. A \bin-ből szedtem az exe-t. Telepíteni nem tudok, mert a másik gépen nincs adminom..

    Tegyél bele hibakezelést, és írasd ki, hogy mi a hiba :D

  • martonx
    veterán

    Helló!

    Csak ismerkedek a VB-el és szeretnék egy egyszerű progit írni, ami excelből egy tabulátoros unicode txt-t csinál. Nos, az unicode-dal is van gondom (OpenTextFileWriter), de a fő bajom az, hogy ha VStudioból indítom a progit, akkor lefut rendesen, de ha a generált exe-t indítom el és eljut az excel műveletekig, akkor az "Nincs elég szabad memória ..." hibaüzenettel leáll.

    Valami banális dolgot nem tudok?

    Dim xlApp As Excel.Application
    Dim xlWorkBook As Excel.Workbook
    Dim xlWorkSheet As Excel.Worksheet
    Dim munkakonyvtar As String = "c:\" 'itt a forras excel es ide generalja az eredmenyfilet
    Dim file = My.Computer.FileSystem.OpenTextFileWriter(munkakonyvtar + "test.txt", False) 'kimeneti file
    Dim munkalap As String = "Munka1" 'a használandó munkalap neve az excelben
    Dim sor As Integer = 6 'aktualis excel cella sorszama, kezdoertek az elso adat sor száma
    Dim oszlop As Integer = 2 'aktualis excel cella oszlop
    Dim cella As String = "" 'aktualis excel cella tartalma
    Dim MH_sor As String = "" 'aktualis sor a kimeneti fileba


    xlApp = New Excel.Application
    xlWorkBook = xlApp.Workbooks.Open(munkakonyvtar + "test1.xlsx")
    xlWorkSheet = xlWorkBook.Worksheets(munkalap)
    cella = xlWorkSheet.Cells(sor, 1).value
    Do While Len(Trim(cella)) > 0
    MH_sor = xlWorkSheet.Cells(sor, 2).value + Chr(9) + xlWorkSheet.Cells(sor, 3).value + Chr(9) + xlWorkSheet.Cells(sor, 4).value
    file.WriteLine(MH_sor)
    sor = sor + 1
    cella = xlWorkSheet.Cells(sor, 1).value
    Loop
    MsgBox("Kész!")

    xlWorkBook.Save()
    xlWorkBook.Close()
    xlApp.Quit()
    file.Close()
    releaseObject(xlApp)
    releaseObject(xlWorkBook)
    releaseObject(xlWorkSheet)

    Ez így nem tűnik rossznak első ránézésre.
    A "Nincs elég szabad memória", nem lehet hogy azt jelenti, hogy tényleg nincs? Ugyanazon a gépen futtatod VS-ből, mint az exe-t?
    Ha valami hiba történik a kódban mivel nem using-ot használsz, és nincs semmi hibakezelés benne, simán nyitva tudnak maradni az excelek. Egy idő után akár 20-30 párhuzamosan futó exceled is lehet.

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