Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: Gökhan BEKEN - 08 Şubat 2015, 17:19:01

Başlık: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: Gökhan BEKEN - 08 Şubat 2015, 17:19:01
Dosyalama işlemi yaparken
putc fonksiyonu herşeyi düzgün yazıyor ama decimal 10 yani hex 0x0A sayısını yazarken 1byte fazladan koyarak 0x0D0A olarak yazıyor.
Bu istemediğim birşey, bunu nasıl engellerim?
Başlık: Ynt: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: Salih - 08 Şubat 2015, 17:30:36
desimal 10 yazarak denedin mi?
Başlık: Ynt: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: Gökhan BEKEN - 08 Şubat 2015, 17:37:29
Farketmiyor. Çünkü 10 yazınca yeni satır ve satır başı işlemi yapmak istediğimi sanarak hemen 13'ü ekliyor. Ascii tablodaki 10 ve 13 zaten bu iş için kullanılıyor normalde.

Fakat çözümünü bulamadım.
Başlık: Ynt: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: Salih - 08 Şubat 2015, 18:19:52
Ben şimdi denedim, sende olan problem olmadı. Sadece 0X0A karakteri gitti.
CCS C 5.030

Edit : Özür dilerim, ben konu bölümüne bakmamışım.
Başlık: Ynt: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: MrDarK - 08 Şubat 2015, 18:25:25
Binary mode diye birşey olabilir meftun, biraz daha araştırmak gerek. Benzer bir olay FTP ve telit'de başıma geldi.
Başlık: Ynt: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: Gökhan BEKEN - 08 Şubat 2015, 18:40:30
Bu arada kullandığım araçları belirtiyim, mcu ile değil bilgisayar ile çalışıyorum.
dev c++ idesi ile min gw kullanıyorum, dil olarak C kullanıyorum. Hex editörden baktığımda 0x0A yazacağı yerlere 1 byte daha ekleyerek 0x0D0A yazıyor, bunun yüzünden dosyadaki bütün sıra kayıyor.
Başlık: Ynt: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: z - 08 Şubat 2015, 19:01:25
0x0D yi sen hiç yazma 0x0A yazdığında sistem 0x0D 0x0A yazsın.

Bir yerlerde Carriage Return - Carriage Return Line Feed seçeneği olması lazım.
Başlık: Ynt: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: MrDarK - 08 Şubat 2015, 19:06:00
Meftun yaşadığın durumun ingilizcesi ve cevabı ;)

You need to open the file in "binary" mode, e.g.

tmp_ifp = fopen("tmp_name.bin", "wb");


http://bytes.com/topic/c/answers/467996-writing-0x0a-bin-file-without-having-automatically-write-0x0d (http://bytes.com/topic/c/answers/467996-writing-0x0a-bin-file-without-having-automatically-write-0x0d)
Başlık: Ynt: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: Gökhan BEKEN - 08 Şubat 2015, 19:35:45
Sağolasın düzeldi. Daha öncede başıma gelmişti nasıl çözdüğümü unutmuşum :)
Başlık: Ynt: putc fonksiyonu ile 0x0A yazamama sorunu(C dili)
Gönderen: mir_as82 - 08 Şubat 2015, 20:04:28
Eğer yanlış hatırlamıyorsam bu Windows sistemlerinde olan birşeydi. Hoca kursta bu olaya değinmişti.