Terve,
Tarvittaisiin taas apuja viisaammilta ja kokeneemmilta:
Vastaanotan binääridataa työstökoneelta, joka käyttää vanhaa EIA-koodia.
EIA_ASCII_CONVERT funktio muuntaa tulevan datan byte kerrallaan ascii-koodiksi.
Vastaanotto ja muunto toimii hyvin kerran, kun koneelta lähettää EIA-tiedoston, mutta kun vastaan otan seuraavaa tiedostoa Dim DimensionedByteArray() As Byte kasvaa kohtuuttoman suureksi ja homma ei toimi.
Jos asetan Dim DimensionedByteArray(7) As Byte ja jätän ReDim:n pois ensimmäinen siirto menee ok, mutta toisella kertaa tulee owerflowta.
MSComm1.InputLen = 1 MSComm1.RThreshold = 1 Dim Buffer As Variant Dim InBuffer '------------------------------------------------- Case comEvReceive Buffer = MSComm1.Input If eiakoodaus = True Then Dim DimensionedByteArray() As Byte Dim intCount As Integer Dim intDecimal As Byte ReDim DimensionedByteArray(LenB(Buffer)) Dim i As Integer InBuffer = Buffer muunnettu = "" For intCount = 0 To (LenB(InBuffer) - 1) DimensionedByteArray(intCount) = CByte(InBuffer(intCount)) intDecimal = DimensionedByteArray(intCount) muunnettu = muunnettu + EIA_ASCII_CONVERT(intDecimal) ' EIA ASCII muunnos Next intCount save_eia 'tallentaa muunnetun datan Else 'ascii koodia FilterData ' suodattaa ja tallentaa datan End If
Jos joku kertoo paremman tavan poimia jokainen vastaanotettu byte tai syyn miksi homma ei toimi kuin yhden siirron, olen erittäin kiitollinen.
Aihe on jo aika vanha, joten et voi enää vastata siihen.