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:
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.