Picproje Elektronik Sitesi

PROGRAMLAMA DİLLERİ => C/C++ => Konuyu başlatan: ArifAhmet - 25 Ocak 2015, 23:31:39

Başlık: İki karakter arasındaki datayı almak
Gönderen: ArifAhmet - 25 Ocak 2015, 23:31:39
Merhabalar,
Elimde şöyle bir data var; veri1:veri2:veri3:veri4...:verin:
Şimdi ben sadece veri1'i almak istiyorum, veri1'in uzunluğunu bilmiyorum ama veriler arasında ":" karakteri var. strtok fonksiyonuda kullanamıyorum. strchr falan denedim ama galiba beceremedim. Bunu yapmanın başka nasıl yolu varmıdır acaba?
İyi günler.
Başlık: Ynt: İki karakter arasındaki datayı almak
Gönderen: Gökhan BEKEN - 25 Ocak 2015, 23:57:48
denemedim ama çalışır herhalde:
char katar[]="veri1:veri2:veri3:veri4...:verin:";
char yeniKatar[20];
char sayac=0;


//ikinoktanın kaçıncı karakter olduğunu öğrenelim:
while(katar[sayac] != ':'){
sayac++;
}


//yeni dizimize sadece ilk kısmın kopyasını alalım:
while(--sayac){
yeniKatar[sayac]=katar[sayac];
}
Başlık: Ynt: İki karakter arasındaki datayı almak
Gönderen: ArifAhmet - 26 Ocak 2015, 00:20:09
Hocam aynen bunu denedim ama bi sonuç vermedi. Şöyle modifiye ettim, çalıştı :)
while(katar[sayac] != ':'){
    yeniKatar[sayac]=katar[sayac];
    sayac++;
}
Çok sağolun.
Başlık: Ynt: İki karakter arasındaki datayı almak
Gönderen: Karamel - 26 Ocak 2015, 00:26:53
hocam sanirim bu mantik ile gps modullerden yada wifi modullerden gelen verileri parcalaybiliriz degilmi? onlarda sanirim veriler virgul ile ayriliyordu.
Başlık: Ynt: İki karakter arasındaki datayı almak
Gönderen: Gökhan BEKEN - 26 Ocak 2015, 00:36:51
GPS, gsm, bluetooth vs(say say bitmez), için elzem olan bir işlemdir.
Mantık basit,
1- kesilecek yerin kaçıncı karakterden başladığını bul
2- kaçıncı karakterde bittiğini bul.
3- bu ikisi arasındakileri yeni diziye aktar
yani 3 adet döngü var.
Başlık: Ynt: İki karakter arasındaki datayı almak
Gönderen: MrDarK - 26 Ocak 2015, 09:47:44
Meftunun söylediklerine ek arama yapılacak arrayin bilgilerini başlangıç ve bitiş adreslerini pointer ile fonksiyona yollarsanız birçok array'de bu tarz aramalar yaptırabilirsiniz.

Hatta ben genelde aradığım bilgiyi #define array olarak tanıtıp fonksiyona bulmasını istediğim bilginin başlangıç adresini ve uzunluğunu gönderiyorum.

Sonucta TRUE veya FALSE alıp eğer var ise birde bulduğu pointer adresinden peşi sıra dataları çekiyorum :)