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 IfJos 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.