Zalo Ultra Skrevet 4. mai 2008 Del Skrevet 4. mai 2008 Jeg har en datafil data.dat som er av typen: unsigned char data[8][128] nå vil jeg at disse data skal legges inn i programmet slik at jeg kan lese data som om de var i en todimensjonal tabell hvordan gjør jeg dette? Lenke til kommentar
ratata Skrevet 4. mai 2008 Del Skrevet 4. mai 2008 du kan sjå litt på denne: http://www.cplusplus.com/reference/iostream/fstream/ Lenke til kommentar
Zalo Ultra Skrevet 5. mai 2008 Forfatter Del Skrevet 5. mai 2008 (endret) joda, jeg kan å lese til og fra filer i c++, men saken er at dette skal programeres på en avr Fila jeg skal ha med inneholder data som avr'n skal bruke... og da aner jeg ikke hvordan jeg får den med.. untatt å sitte å manuelt skrive inn , 0x { } osv. jeg innbiller meg at det er noe triks med preprosessoren i c som kan gjøre susen.. Endret 5. mai 2008 av Zalo Ultra Lenke til kommentar
Dead_Rabbit Skrevet 5. mai 2008 Del Skrevet 5. mai 2008 Kan du ikke bare kopiere det til en char-array? Dette kan du vel gjøre ved å lage et kjapt script som dumper koden i det formatet du ønsker ("0x00, 0x01" f.eks) for så å copy-paste. Tror det hadde vært enklest om ikke annet. Lenke til kommentar
Sokkalf™ Skrevet 6. mai 2008 Del Skrevet 6. mai 2008 Hadde en gang for mange år siden (når jeg programmerte i DOS) et program som gjorde akkurat dette for meg. Fant det igjen her. Lenke til kommentar
Zalo Ultra Skrevet 6. mai 2008 Forfatter Del Skrevet 6. mai 2008 Takk for svar Det var egentlig noe slikt jeg så for meg. At dataene måtte manuelt copy-pastes inn i koden. Kunne selvsagt laget et skript av noe slag, men jeg tror jeg går for det enkleste, programmet Sokkalf linket til. Hadde bare et lite håp om det gikk an å include en binærfil av noe slag. Lenke til kommentar
Dead_Rabbit Skrevet 6. mai 2008 Del Skrevet 6. mai 2008 Det finnes programmer som kan "joine" binære filer, men jeg tror dette blir mer stress enn hva det er verdt. Lenke til kommentar
GeirGrusom Skrevet 6. mai 2008 Del Skrevet 6. mai 2008 En kan vel også inkludere resources i en programfil? Lenke til kommentar
Zalo Ultra Skrevet 8. mai 2008 Forfatter Del Skrevet 8. mai 2008 er dette vanskelig å gjøre? høres ut som riktig måte å gjøre det på... Lenke til kommentar
亚历山大 Skrevet 27. juli 2008 Del Skrevet 27. juli 2008 Laget et program for ei stund siden som gjør akkurat dette Link. Det er en shell-code generator. - Aleksander - Lenke til kommentar
Zalo Ultra Skrevet 3. august 2008 Forfatter Del Skrevet 3. august 2008 \x betyr det vanlig hex-tall bare? Hvorfor lagres data som strenger? Lenke til kommentar
Dj_Offset Skrevet 3. august 2008 Del Skrevet 3. august 2008 Hvorfor lagres data som strenger? Det er ingen forskjell på strenger og array med tanke på hvordan dataene ligger i minnet. Lenke til kommentar
Zalo Ultra Skrevet 3. august 2008 Forfatter Del Skrevet 3. august 2008 blir jo nullterminert da... for mitt tilfelle vil dette ødelegge datastrukturen... Lenke til kommentar
Dead_Rabbit Skrevet 4. august 2008 Del Skrevet 4. august 2008 \x betyr det vanlig hex-tall bare? Hvorfor lagres data som strenger? Shellcode lagres gjerne i en streng for at man skal kunne overskrive retur-pekeren til en funksjon med adressen til strengen. Dette gjør at istedenfor at programmet fortsetter å kjøre fra der funksjonen ble kalt, kjører den koden som er lagret i strengen. Lenke til kommentar
Roptaty Skrevet 5. august 2008 Del Skrevet 5. august 2008 blir jo nullterminert da... for mitt tilfelle vil dette ødelegge datastrukturen... Nullterminering ødelegger ikke datastrukturen. Nullterminering er ikke EOF. Nullterminering er kun aktuelt på funksjoner som antar at dataene er nullterminert. Lenke til kommentar
Zalo Ultra Skrevet 5. august 2008 Forfatter Del Skrevet 5. august 2008 (endret) hver byte skal skrives til et minne på et LCD-display. Hver byte i minnet tilsvarer 8 punkter som vises på displayet. Derfor vil nullterminering ødelegge strukturen... Endret 5. august 2008 av Zalo Ultra Lenke til kommentar
Roptaty Skrevet 5. august 2008 Del Skrevet 5. august 2008 Hva inneholder datafilen du har inkludert i koden? Jeg antar at den f.eks er på formen char data[] = {0x20, 0x42,0xXX, ..... 0x00,0x34,0x43}; char* data2 = "\x20\x42\xXX\x00\x34\x43"; Altså, nullterminering er lik 0x00 altså, åtte biter satt til 0. Nullterminering får du bare hvis datafilen du har, inneholder byten 0, og nullterminering spiller ingen rolle såfremt du ikke bruker noen funksjoner som MÅ ha nullterminerte strenger. Hvordan mener du at det vil ødelegge datastrukturen din? Tenker du her på at printingen til LCD displayet stopper opp hvis den møter byten 0? Alle dataene eksisterer i variablene. Datastrukturen er ikke ødelagt. Du må bare vite hvor stor den og skrive ut alle bytene du har i datasettet. Lenke til kommentar
Zalo Ultra Skrevet 5. august 2008 Forfatter Del Skrevet 5. august 2008 som nevnt tidligere er datafilen på formen; unsigned char data[8][128] = {..., ...,}; jeg har ikke inkludert noe annet, ingen pekere til data eller noe. nå virker det som jeg missforstår noe her, men når man lager en tabell slik: BYTE ShellCode[] = "0x.., 0x.., 0x.., 0x.., 0x.., 0x.., ..." "0x.., 0x.., 0x.., 0x.., 0x.., 0x.., ..." "0x.., 0x.., 0x.., 0x.., 0x.., 0x.., ..." så vil det dannes en tabell som inneholder alle byte i første streng + nullterminering, alle byte i andre streng + nullterminering osv. det vil ikke dannes en tabell over pekere til starten av disse strengene. Datafilen jeg har inneholder selvsagt byten 0, noe som tilsvarer 8 inaktive punkter på displayet. Printingen til LCD-displayet vil ikke stoppe om den ser en null, men heller skrive ut 8 inaktive punkter på displayet... Hele planen er å lese data fra en fil, og overføre nøyaktig disse dataene til RAM'en til LCD-displayet. Data i displayminnet må ligge perfekt sortert, i motsetning til hva det behøver i en mikrokontroller eller ne PC. Lenke til kommentar
GeirGrusom Skrevet 6. august 2008 Del Skrevet 6. august 2008 Skjønner ikke helt hva som er problemet med null-terminering, det er du som introduserer null-terminering selv, det er ingen krav at det er null-terminering i C. En string er bare et array av bytes, og så lenge du ikke bruker string funksjoner så er også null-terminering irrelevant. Men nå gjentar jeg egentlig bare hva Roptaty sier. Ikke tenk på null-terminering overhode, for det er ikke egentlig et problem. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå