Forum » Programiranje » rabib vba kodo za shranjevanje v bin (iz excella)
rabib vba kodo za shranjevanje v bin (iz excella)
Silikon ::
Pozdravljeni!
V excelu imam napisan en programček za avtomatsko obdelavo podatkov v bin datoteki.
Datoteka je velika 512 Bytov in na netu sem našel kodo za odpiranje/prenos podatkov v excell (Ta koda mi lepo zloži vsak byte (kot decimalno število) v svojo vrstico)
Private Sub CommandButton1_Click()
Dim intFileNum, bytTemp As Byte, intCellRow%
intFileNum = FreeFile
intCellRow = 0
FileName = Application.GetOpenFilename
If Not FileName = "False" Then MsgBox FileName
Open FileName For Binary Access Read As intFileNum
Do While Not EOF(intFileNum)
intCellRow = intCellRow + 1
Get intFileNum, , bytTemp
Cells(intCellRow, 1) = bytTemp
Loop
Close intFileNum
End Sub
Po končani obdelavi podatkov bi pa želel shranit rezultate oz spremembe v novo datoteko, oz...
bi rabil še kodo ki bi mi omogočila da obdelane podatke iz celic shranim nazaj v bin datoteko torej vseh 512 vrstic bi rad shranil nazaj v novo datoteko po zaporedju od 1 do 512 vrstice. (Torej da se ohrani enak format in velikost datoteke - 512 Bytov)
Please :)
V excelu imam napisan en programček za avtomatsko obdelavo podatkov v bin datoteki.
Datoteka je velika 512 Bytov in na netu sem našel kodo za odpiranje/prenos podatkov v excell (Ta koda mi lepo zloži vsak byte (kot decimalno število) v svojo vrstico)
Private Sub CommandButton1_Click()
Dim intFileNum, bytTemp As Byte, intCellRow%
intFileNum = FreeFile
intCellRow = 0
FileName = Application.GetOpenFilename
If Not FileName = "False" Then MsgBox FileName
Open FileName For Binary Access Read As intFileNum
Do While Not EOF(intFileNum)
intCellRow = intCellRow + 1
Get intFileNum, , bytTemp
Cells(intCellRow, 1) = bytTemp
Loop
Close intFileNum
End Sub
Po končani obdelavi podatkov bi pa želel shranit rezultate oz spremembe v novo datoteko, oz...
bi rabil še kodo ki bi mi omogočila da obdelane podatke iz celic shranim nazaj v bin datoteko torej vseh 512 vrstic bi rad shranil nazaj v novo datoteko po zaporedju od 1 do 512 vrstice. (Torej da se ohrani enak format in velikost datoteke - 512 Bytov)
Please :)
P5B, INTEL E8400 3Ghz, 2GB RAM, VGA GTX260 CORE 216 - 896 RAM, 550W
amacar ::
Ko zaženem tvojo kodo za odpiranje .bin dobim pri branju na koncu še eno odvečno 0 zraven. Ne vem, če js anrobe zapišem .bin ali že tvoja koda deluje narobe pri branju.
V glavnem koda za shranjevanje (Pri dialogu za shranit ne pozabi na končnico .bin)
V glavnem koda za shranjevanje (Pri dialogu za shranit ne pozabi na končnico .bin)
Sub shraniBin()
Dim path As Variant
Dim stevec As Integer
Dim nFileNum As Integer
path = Application.GetSaveAsFilename
If path <> False Then
nFileNum = FreeFile
Open path For Binary Lock Read Write As #nFileNum
stevec = 1
While Cells(stevec, 1) <> ""
Put #nFileNum, , CByte(Cells(stevec, 1))
stevec = stevec + 1
Wend
Close #nFileNum
End If
End Sub
Silikon ::
Amacar hvala! Dela skoraj perfektno, res je da moja prejšnja koda doda 513 vrstico z vrednostjo 0, ki je pri obdelavi sploh ne uporabljam, in ravno tale 513 mi sedaj dela težavo pri shranjevanju namreč dobim 513 Bytov. Lahko mogoče prilagodiš tvojo kodo da naj shrani samo prvih 512 vrstic? Lp
P5B, INTEL E8400 3Ghz, 2GB RAM, VGA GTX260 CORE 216 - 896 RAM, 550W
amacar ::
Sub shraniBin()
Dim path As Variant
Dim stevec As Integer
Dim nFileNum As Integer
path = Application.GetSaveAsFilename
If path <> False Then
nFileNum = FreeFile
Open path For Binary Lock Read Write As #nFileNum
stevec = 1
While stevec < 513
Put #nFileNum, , CByte(Cells(stevec, 1))
stevec = stevec + 1
Wend
Close #nFileNum
End If
End Sub Silikon ::
Hvala!
Dela super sedaj!
Lp!
Dela super sedaj!
Lp!
P5B, INTEL E8400 3Ghz, 2GB RAM, VGA GTX260 CORE 216 - 896 RAM, 550W
Silikon ::
Hoj!
Rabim še eno nadgradnjo algoritma :) Če je možno :)
Ali se lahko integrira v kodo za odpiranje datoteke sprogramira, da se recimo bin datoteka naloži v stolepc A na del. listu 2
Tvoja koda za shranjevanje pa naj se izvede na celicah stolpca A na delovnem listu 3?
Namreč podatke obdelujem na delovnem zvezku 1, podatke pa bi rad imel ločeno (load / save) datoteke bi rad izvajal na del zvezku 1.
Če to zrihtaš si pa res CAR :)
Rabim še eno nadgradnjo algoritma :) Če je možno :)
Ali se lahko integrira v kodo za odpiranje datoteke sprogramira, da se recimo bin datoteka naloži v stolepc A na del. listu 2
Tvoja koda za shranjevanje pa naj se izvede na celicah stolpca A na delovnem listu 3?
Namreč podatke obdelujem na delovnem zvezku 1, podatke pa bi rad imel ločeno (load / save) datoteke bi rad izvajal na del zvezku 1.
Če to zrihtaš si pa res CAR :)
P5B, INTEL E8400 3Ghz, 2GB RAM, VGA GTX260 CORE 216 - 896 RAM, 550W
amacar ::
Za pravo vsoto se da vse zmenit 
Sub naloziBin()
Dim intFileNum, bytTemp As Byte, intCellRow%
intFileNum = FreeFile
intCellRow = 0
Filename = Application.GetOpenFilename
If Not Filename = "False" Then MsgBox Filename
Open Filename For Binary Access Read As intFileNum
Do While Not EOF(intFileNum)
intCellRow = intCellRow + 1
Get intFileNum, , bytTemp
Sheets(2).Cells(intCellRow, 1) = bytTemp
Loop
Close intFileNum
End Sub
Sub shraniBin()
Dim path As Variant
Dim stevec As Integer
Dim nFileNum As Integer
path = Application.GetSaveAsFilename
If path <> False Then
nFileNum = FreeFile
Open path For Binary Lock Read Write As #nFileNum
stevec = 1
While stevec < 513
Put #nFileNum, , CByte(Sheets(3).Cells(stevec, 1))
stevec = stevec + 1
Wend
Close #nFileNum
End If
End Sub Silikon ::
;)
Lej ko se naslednjič vidima skupaj ti bo vse jasno, če ne prej se vidimo za krst maelga Li... :) :) :) :)
Lej ko se naslednjič vidima skupaj ti bo vse jasno, če ne prej se vidimo za krst maelga Li... :) :) :) :)
P5B, INTEL E8400 3Ghz, 2GB RAM, VGA GTX260 CORE 216 - 896 RAM, 550W
Vredno ogleda ...
| Tema | Ogledi | Zadnje sporočilo | |
|---|---|---|---|
| Tema | Ogledi | Zadnje sporočilo | |
| » | Uvoz txt datoteke v excelOddelek: Programska oprema | 5466 (5103) | sebavet |
| » | vb.net: dynamic textboxOddelek: Programiranje | 1292 (1182) | saule |
| » | Calc/excel delo s tabeloOddelek: Programiranje | 1569 (1336) | salabajs |
| » | [VB] graf, merilnik hitrosti, termometerOddelek: Programiranje | 2428 (2293) | darkolord |
| » | Visual Basic in ExcelOddelek: Programiranje | 2906 (2472) | Vesoljc |