Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => ARM => Konuyu başlatan: kimlenbu - 25 Nisan 2014, 13:40:42

Başlık: Struct içindeki char array
Gönderen: kimlenbu - 25 Nisan 2014, 13:40:42
Konuyu ARM altına açtım ama...


diyelim ki 6 adet dosya adını tutan bir dizi tanımladım :

uint8_t *RaporDosyaListesi[6] =
{
{"1a3456789.123"},
{"2b3456789.123"},
{"3c3456789.123"},
{"4d3456789.123"},
{"5e3456789.123"},
{"6f3456789.123"},
};


daha sonra sadece 1 dosya adı tutan bir dizi tanımladım diyelim (bu tanımlama aslında struct içinde, değer sonradan atanıyor) :

uint8_t TekDosyaAdi[13]="7g3456789.123";

şimdi ben 6 dosya adı tutan dosyanın atıyorum 3. elemanına bu tek dosya adını nasıl atarım ??

bu olmuyor,alakasız karakterler çıkıyor :

RaporDosyaListesi[2]=TekDosyaAdi

Başlık: Ynt: Struct içindeki char array
Gönderen: SpeedyX - 25 Nisan 2014, 14:03:48
memcpy
strcpy
for
kullanabilirsin.

Direkt eşitlik çalışmaz.
Başlık: Ynt: Struct içindeki char array
Gönderen: kimlenbu - 25 Nisan 2014, 14:06:49
strcpy(RaporDosyaListesi[2],TekDosyaAdi);

memcpy(RaporDosyaListesi[2],TekDosyaAdi,13);

şeklinde denedim gene olmuyor.
Başlık: Ynt: Struct içindeki char array
Gönderen: yldzelektronik - 25 Nisan 2014, 14:08:41
strcpy(&RaporDosyaListesi[2],TekDosyaAdi);
Başlık: Ynt: Struct içindeki char array
Gönderen: kimlenbu - 25 Nisan 2014, 14:11:48
Alıntı yapılan: yldzelektronik - 25 Nisan 2014, 14:08:41
strcpy(&RaporDosyaListesi[2],TekDosyaAdi);

aşağıdaki hatayı veriyor :

main.c(4021): error:  #167: argument of type "char **" is incompatible with parameter of type "char *restrict"
Başlık: Ynt: Struct içindeki char array
Gönderen: yldzelektronik - 25 Nisan 2014, 14:20:17
Ben olayı dizinin tek elemanına değer atamak istediğiniz şeklinde algılamışım.Hatta onun için şimdi strncpy fonksiyonunu söyleyecektim.Ancak şimdi fark ettim.
Başlık: Ynt: Struct içindeki char array
Gönderen: kimlenbu - 25 Nisan 2014, 14:24:07
6 dosya adını tutan dizinin atıyorum 3. elemanını değiştirmek istiyorum. bu örnekte

"3c3456789.123" degerini
"7g3456789.123" yapmak istiyorum.
Başlık: Ynt: Struct içindeki char array
Gönderen: yamak - 25 Nisan 2014, 14:42:03
memcpy(RaporDosyaListesi[2],TekDosyaAdi,13);
Komutunu çalıştırdığında ne oluyor.
Başlık: Ynt: Struct içindeki char array
Gönderen: CLR - 25 Nisan 2014, 14:52:02
değişken olarak string kullanmışsın, yani string array yapmışsın ama tanımlamanda uint8 ptr yapmışsın bu böyle olmaz. Aşağıdaki gibi iki boyutlu array kullanırsan sorunsuz olması lazım


uint8_t *RaporDosyaListesi[6][13] =
{
{"1a3456789.123"},
{"2b3456789.123"},
{"3c3456789.123"},
{"4d3456789.123"},
{"5e3456789.123"},
{"6f3456789.123"},
};


memcpy(RaporDosyaListesi[2],TekDosyaAdi,13);
Başlık: Ynt: Struct içindeki char array
Gönderen: kimlenbu - 25 Nisan 2014, 15:17:56
Dediklerinizin hepsini denedim olmadı, en son tasarımı değiştirdim artık, çalıştı sonunda...

typedef struct RaporDosyaTablosu
{
uint8_t rapdosyaadi[13];
uint8_t raptarih[9];
uint8_t rapbaslangicsaati[9];
uint8_t rapbitissaati[9];
}RaporDosyaTablosu;

RaporDosyaTablosu RaporDosyaTablom[6];



strcpy(RaporDosyaTablom[2].rapdosyaadi,TekDosyaAdi);


mesaj birleştirme:: 25 Nisan 2014, 15:31:57

amacım tıklanan dosya adının yeşil gösterilmesini sağlamaktı, haliyle 6 lı bloklar halinde okuduğum dosya adlarına ulaşmam lazımdı, çok teşekkürler herkese.

! Private video (http://www.youtube.com/watch?v=-4YFD3vOY60&feature=youtu.be#)