C dilinde aynı anda yazma ve okuma işlemi

Katılım
1 Ekim 2017
Mesajlar
1.638
Makaleler
4
Çözümler
13
Daha fazla  
Cinsiyet
Erkek
Merhaba, işletim sistemleri dersimizde verilen proje ödevimiz için 3 proccess ile çeşitli kontroller yaparak bir txt dosyasını düzenlememiz gerekmekte. Kabaca anlatmam gerekirse elimizde alt alta kelimelerin yazılı olduğu bir txt var, örneğin:
TEST
TEST1
TEST!
Bu şekilde olan bir txt düşünün alt alta 100 kelime var. Amacımız bir proccessin kelimenin tamamen harflerden mi oluştuğunu, diğer proccessin kelimenin sayı içerip içermediğini ve son proccessin de kelimenin özel karakter içerip içermediğini kontrol etmesi ve eğer içeriyor ise yanında "- sayı var-" şeklinde yazı eklemesi ve bunu aynı txt dosyası üzerinde yapması. Benim sorunum şurada başlıyor, öncelikli olarak txt işlemlerini halleden kodu yazmaya başladım ve aynı txt üzerinde alt kısımdaki yazıları silmeden bir türlü yazıyı sonuna ekletemiyorum. Yazdığım algoritma şu anda böyle:

[CODE lang="c" title="Algoritmam"]#include <stdio.h>
#include <stdbool.h>
#include <ctype.h>
#include <string.h>

int main()
{
char *filename = "kaynak.txt";
FILE *fp = fopen(filename, "rb+");
if (fp == NULL)
{
printf("Error: file not exist! %s", filename);
return 1;
}
char ch;
char line[10000];
bool write = false;
char sayi[10000] = "-Sayi var -";
while(fgets(line,sizeof(line),fp) != NULL){
int i = 0;
while(line != '\0')
{
if(line >= '0' && line <= '9')
{
write = true;
printf("sayi var\n");
}
i++;
}
if(write == true)
{
fputs("- Sayi var - \n", fp);
write = false;
}
}

fclose(fp);

return 0;
}[/CODE] Bu algoritmanın sıkıntısı 12 karakterlik "- Sayı var -" yazısı kadar txt dosyamdan yazı silmesi örneğin bize verilen txt dosyasında şöyle bir yer var:
[CODE title="Örnek 2"]2
Mart'ta
sunu8lan
Eylem [/CODE] bu kısmı bu kod şu şekilde değiştiriyor:

[CODE title="Örnek 2 değişim"]2
- Sayi var -
lan
Eylem [/CODE]. İnternette yaptığım araştırmalarda önerilen ve bana da mantıklı gelen ama bu projemde kullanamayacağım algoritma ise txt dosyasından yazıların çekilip yeni bir dosyaya yazılması ve sonrasında önceki dosyanın silinip yeni dosyanın adının ana dosya adı ile aynı yapılması üzerine kurulu. Bir çıkar yol bulamadım uzunca süredir. Çözüm önerilerinize açığım.
 
Son düzenleyen: Moderatör:

Bu konuyu görüntüleyen kullanıcılar

Technopat Haberler

Geri
Yukarı