Arama butonu
Bu konudaki kullanıcılar: 1 misafir
5
Cevap
460
Tıklama
0
Öne Çıkarma
c++ odev
M
8 yıl (21 mesaj)
Onbaşı
Konu Sahibi

< Resime gitmek için tıklayın >
Kullanicidan veri alarak kiyidini dosyaya yaptigim kisinin tekrar kullancidan tc no verinisini alarak kaldirmak istiyorum bunu nasil yapabilirim



P
8 yıl (97 mesaj)
Çavuş

hocam c# tam bilmiyorum da sen bu kullanıcı verilerini diziye mi alacaksın yoksa bağlı liste ile mi yapacaksın


Bu mesaja 1 cevap geldi.
M
8 yıl (21 mesaj)
Onbaşı
Konu Sahibi

dizi yok direk txt dosyasini islicem


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @pir2xh
R
8 yıl (771 mesaj)
Yüzbaşı

setw ile 30 boşluk bırakmışsın. bunun yerine tek boşluk koysan. örnek text dosyası aşağıdaki gibi olsa

a b 11122233344 100
a b 11122233345 101
a b 11122233346 102

müşteri sil fonksiyonu içinde dosyayı tekrar açıp döngü içinde satır satır okuman gerekiyor. C++'da yazıyorsan her satırı strtok fonksiyonu ile parçalayıp 3.cü elemanı girilen tcno ile eşleştiriyorsun eşleşmeyen satırları bir diziye yedekliyorsun. döngü bittikten sonra dizideki satırları (1 satır eksik hali ile) tekrar dosyaya yazdırıyorsun.

strtok açmaz ise, str find tarzı komut da araştırabilirsin.

özetle: txt dosyasından istediğin satırı silmek için hedef satır eşleşene kadarki tüm satırları ve hedef satırdakinden sonraki tüm satırları bir diziye yedekleyip, okuma işleminin ardından dosyaya geri yazmalısın. böylece hedef satırı es geçtiğinden silinmiş görünecek.




Bu mesajda bahsedilenler: @mert4119
H
8 yıl (229 mesaj)
Teğmen

Silmek için ayrı dosya aç while(ilkdosya.eof()) ile ilk dosyadaki bütün elemanları 2.dosyaya yazdır tabi if else yaparak if de silmek istediğin veriti kontrol ettir. Eğer eşitse o satırı yazmasın en son unlink(ilkdosya) rename(2dosya,ilkdosya) yaparak ilk dosya ile bağlantıtı koparıp 2.dosyanın ismini ilk dosyayka değiştir.



< Bu ileti mobil sürüm kullanılarak atıldı >

R
8 yıl (771 mesaj)
Yüzbaşı

Daha önce C# ile yazdığım benzer kodu ekliyorum. istediğin satırı silmeye yarar. fikir verebilir.

public static StreamReader dosyadanOku(string path) 
{
dosyam = new FileStream(path, FileMode.Open, FileAccess.Read);
okuma = new StreamReader(dosyam, Encoding.GetEncoding("iso-8859-9")); // "windows-1254"
return okuma;
}

public static void secileniSil(string path, int index)
{
int i = 0;
List<string> lst = new List<string>();
string str;
StreamReader rdr = dosyadanOku(path);
while (true)
{
if (i != index)
{
if (!String.IsNullOrEmpty(str = rdr.ReadLine()))
lst.Add(str);
else
break;
}
else
str = rdr.ReadLine();
i++;
}
okumayiKapat();
FileStream f = new FileStream(path, FileMode.Truncate, FileAccess.Write);
yazma = new StreamWriter(f);
for (i = 0; i < lst.Count; i++)
yazma.WriteLine(lst[i]);

yazma.Close();
f.Close();
}



DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.