Avatar billede christian_h Nybegynder
02. april 2005 - 09:08 Der er 14 kommentarer og
1 løsning

Data fra text1 til Array

Hej Allesammen.

Jeg har en multi line textbox med en masse data fra 2047 bytes og op efter, hvordan får jeg denne data ind i et predefineret array ?, det skal ind i arayet i byets, altså hvis tekstboxen indeholder 0025f896fa, så skal 00 ind i en array plads, 25 i den næste osv.

mit array ser således ud:

Global fileData() As fData  'declares an array of the type fdata

Type fData 'File Data Type
  Addr As Integer 'address of the byte.
  newLine As Boolean 'if the byte is the first one in the hexfile
  Dbyte As Byte 'the byte
End Type

Håber nogen kan hjælpe.

Mvh.

Christian_h
Avatar billede sjh Nybegynder
02. april 2005 - 09:21 #1
øh, hvad er det lige du vil lave??

Hvis jeg forstår dig ret, så er det vel noget med en slaks database.. prøv at se her:
http://hjem.get2net.dk/sjh/eksperten/299869/TypeData.zip
Avatar billede christian_h Nybegynder
02. april 2005 - 09:33 #2
Du skal nok kun kigge på "Global fileData() As fData" som er mit array. Det jeg har gjort, er at jeg har læst en 24C16 eeprom ind i textboxen fra comporten, og det vil jeg gerne have ind i mit array i bytes. Jeg kan derefter gemme arrayet i en fil via en funktion som omdanner daten til Intel hex8 format.

Mvh.

Christian
Avatar billede sjh Nybegynder
02. april 2005 - 09:39 #3
er det så ikke bare..


  redim fileData(100)

  with fileData(0)
      .Addr = 1
      .newLine = false
      .Dbyte = ??
  end with
Avatar billede christian_h Nybegynder
02. april 2005 - 09:48 #4
Prøver lige på en anden måde, hvis nu man har en for next løkke, hvordan får man så en variable ind på en ny pkads i sit array, hver gang der køres igennem for next løkken ?
Avatar billede sjh Nybegynder
02. april 2005 - 09:54 #5
hvis du lige viser den data som skal ind i dit array.. så kan det være jeg fatter hvad det er du vil ;)
Avatar billede christian_h Nybegynder
02. april 2005 - 10:03 #6
Jeg har en lykke som nedenstående, og det er "EEPromByte" jeg gerne vil have ind i mit array, så hver gang der loopes i for next løkken, skal EEPromByte "proppes" ind på en ny plads i arrayet

For EEPromAddressHighByte = 0 To 7 ' Skift page i eeprom
  For EEPromAddressLowByte = 0 To 255 '5
      DoEvents
      DelayUS 10
      EEPromByte = i2crbyte
      DelayUS 10
      sendack
      DelayUS 10
      frmSerial.Text1.Text = frmSerial.Text1.Text & Hex2(EEPromByte)       

      HER SKAL "EEPromByte" PUTTES IND PÅ EN NY PLADS I AARAYET

  Next
Next
Avatar billede sjh Nybegynder
02. april 2005 - 10:48 #7
Så er det vel bare sådan:


ReDim fileData(2048) As fData
j = 0

For EEPromAddressHighByte = 0 To 7 ' Skift page i eeprom
  For EEPromAddressLowByte = 0 To 255 '5
      DoEvents
      DelayUS 10
      EEPromByte = i2crbyte
      DelayUS 10
      sendack
      DelayUS 10
      frmSerial.Text1.Text = frmSerial.Text1.Text & Hex2(EEPromByte)
      With fileData(j)
          .Addr = 1
          .newLine = False
          .Dbyte = EEPromByte
      End With
      j = (j + 1)
  Next
Next
Avatar billede christian_h Nybegynder
02. april 2005 - 11:21 #8
Er der en måde hvorpå jeg kan visuelt kan se at min data er kommet rigtigt ind i arrayet ?
Avatar billede sjh Nybegynder
02. april 2005 - 11:39 #9
Ja, så skal du bare køre den igen..


j = 0
strHex = ""

For EEPromAddressHighByte = 0 To 7 ' Skift page i eeprom
  For EEPromAddressLowByte = 0 To 255 '5
      strHex = strHex & Hex2(fileData(j).Dbyte)
      j = (j + 1)
  Next
Next

frmSerial.Text2.Text = strHex ' <- Text2
Avatar billede sjh Nybegynder
02. april 2005 - 11:41 #10
så skulle frmSerial.Text2.Text gerne være det samme som det der står i frmSerial.Text1.Text

HUSK at nulstille:

j = 0
strHex = ""
Avatar billede sjh Nybegynder
02. april 2005 - 11:46 #11
Lige en ting.. du skal ikke brokke dig til mig.. hvis du brænder noget af.. det styre du altså selv.. ;)
Avatar billede christian_h Nybegynder
02. april 2005 - 11:51 #12
Hæ hæ hæ, det gør jeg ikke, indlæsningen af eeprommen, er på plads, det er bare denne array ting, der driller, kigger lige lidt mere på det og vender så tilbage :-) men det ser lovende ud
Avatar billede christian_h Nybegynder
02. april 2005 - 13:01 #13
Det ser udtil at der kommer data ind i arrayet, men kan du gennemskue, om det kommer ind på samme måde som hvis en hex fil åbnes med nedenstående sub, for hvis jeg prøver at gemme arrayet med en saveHex sub jeg har bliver det gemt forkert, og det gør det ikke hvis det er en hex fil jeg har åbnet ind i aarayet med den nedenstående sub.

Sub loadHex8File(fdat() As fData, fileName As String)
  ReDim fdat(numberOfBytes(fileName) + 1) 'change size of array to the number of bytes in the hexfile
  Dim curLine As Integer, curAddr As Long, curIdx As Long, f As Integer, a$, i As Integer
  f = FreeFile
 
  Open fileName For Input As f
   
    Do Until EOF(f)
      curLine = curLine + 1
      Line Input #f, a$
     
      curAddr = "&H" & Mid$(a$, 4, 4)    'get lineaddress
      For i = 0 To Int("&H" & Mid$(a$, 2, 2)) - 1 'get # bytes in line
        fdat(curIdx).Addr = curAddr + i
        If i = 0 Then
          fdat(curIdx).newLine = True
        Else
          fdat(curIdx).newLine = False
        End If
        fdat(curIdx).Dbyte = "&H" & Mid$(a$, i * 2 + 10, 2)
        curIdx = curIdx + 1
      Next i
    Loop
  Close f
End Sub
Avatar billede christian_h Nybegynder
03. april 2005 - 01:56 #14
Hej sjh.

1000 tak for din hjælp, jeg fandt ud af at jeg også skulle komme en adresse, samt definere hvornår der skulle være linie skift, så det hele er kommet til at se således ud.

Smid lige et svar, så får du dine point, dem har du fortjent.

Mvh.

Christian_h

If ByteCount = 16 Then
        With fileData(j1)
          .Addr = ByteAdr
          .newLine = True
          .Dbyte = EEPromByte
        End With
        ByteCount = 0
        Else
          With fileData(j1)
          .Addr = ByteAdr
          .newLine = False
          .Dbyte = EEPromByte
      End With
      End If
      ByteAdr = (ByteAdr + 1)
      ByteCount = (ByteCount + 1)
      j1 = (j1 + 1)
Avatar billede sjh Nybegynder
04. april 2005 - 09:34 #15
okææ ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester