Czy moze mi ktos podpowiedziec jak otworzyc zapisany plik txt aby moc go edytowac ? Mam do oddania projekt na poniedzialek i jest to mega wazne.
Z gory dziekuje.
@Lord Darkstorm w tym linku nie ma zawartej odpowiedzi na moje pytanie...
Otworzyc zapisany plik by go edytowac i zapisac ten edytowany. Tak jest napisane w glownym watku..
raport asia_261 napisał(a)
Link do wikibooks a prosilam o pomoc .. W internecie sama moge znalezc takie rzeczy.. Nie o to prosilam
Ech, @Lord Darkstorm podał Ci link do podręcznika, gdzie wszystko jest ładnie opisane. W takim razie o co prosiłaś? O napisanie tego za Ciebie? Tu podstawą jest umiejętność korzystania z dokumentacji, z kursów... Pomagamy dopiero, kiedy sobie KONKRETNIE z czymś nie radzisz. Więc w jaki sposób wg Ciebie ta pomoc ma wyglądać???
A gdzie jest opisane jak dokonac EDYCJI tego pliku ??
KONKRETNIE nie radze sobie z edycja pliku w tym programie:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(void)
{
char wybor;
printf("Podaj operacje\n Dodaj projekt do bazy - d\n Usun projekt - u\n Edytuj projekt - e\n Wyswietlij liste projektow - l\n Wyswietlij szczegoly wybranego projektu lacznie z trescia zadania\n ( z pliku tekstowego) - w\n Automatyczne wyszukiwanie projektow nikomu nie przydzielonych - a\n Zapis i odczyt danych z pliku - z\n");
scanf("%c",&wybor);
switch(wybor)
{
case 'd' : dodaj_projekt();
break;
case 'u' : usun_projekt();
break;
case 'e' : edytuj_projekt();
break;
case 'l' : wyswietl_projekt();
break;
case 'w' : szczegol_projekt();
break;
case 'a' : auto_projekt();
break;
case 'z' : zapis_i_odczyt();
break;
default: printf("Musisz wybrac jakis dozwolony znak\n");
break;
}
return 0;
}
void dodaj_projekt()
{
char tytul[50];
char plik[40];
char tresc[255];
char nazwisko[30];
int ocena;
printf("Podaj nazwe pliku\n");
scanf("%35s",plik);
printf("Podaj tytul\n");
scanf("%s",tytul);
printf("Podaj tresc projektu\n");
while(getchar()!='\n') {}
fgets(tresc,255,stdin);
printf("Podaj nazwisko\n");
scanf("%s",nazwisko);
printf("Podaj ocene\n");
scanf("%d",&ocena);
if ( !strstr(plik,".") )
{
strcat(plik,".txt");
}
FILE *file;
FILE *file2;
if (file2 = fopen(plik,"r") == NULL)
{
file = fopen(plik,"w+");
fprintf (file, "%s", tytul);
fprintf (file, "%c", '\n');
fprintf (file, "%s", nazwisko);
fprintf (file, "%c", '\n');
fprintf (file, "%d", ocena);
fprintf (file, "%c", '\n');
fprintf (file, "%s", tresc);
}
else
{
printf("Jest juz podany projekt\nZacznijmy wszystko od nowa\n");
close(file2);
dodaj_projekt();
}
close(file);
}
void usun_projekt()
{
char plik[40];
printf("Podaj nazwe projektu, ktory chcesz usunac\n");
scanf("%s",plik);
if ( !strstr(plik,".") )
{
strcat(plik,".txt");
}
FILE *file;
if (file = fopen(plik,"r") != NULL)
{
remove(plik);
}
else
{
printf("Nie ma takiego projektu\n Zacznijmy wszystko od nowa\n");
usun_projekt();
}
}
void edytuj_projekt()
{
char plik[40];
printf("Podaj nazwe projektu, ktory chcesz edytowac\n");
scanf("%s",plik);
if ( !strstr(plik,".") )
{
strcat(plik,".txt");
}
FILE *file;
FILE *f=fopen("plik","tra");
if (file = fopen(plik,"tra") != NULL){}
}
void wyswietl_projekt()
{
char plik[40];
printf("Podaj nazwe projektu, ktory chcesz wyswietlic\n");
scanf("%s",plik);
if ( !strstr(plik,".") )
{
strcat(plik,".txt");
}
FILE *file;
char uchwyt[255];
int wynik;
if (file = fopen(plik,"r") != NULL){}
else
{
printf("Nie ma takiego projektu\n Zacznijmy wszystko od nowa\n");
wyswietl_projekt();
}
}
void szczegol_projekt()
{
char plik[40];
printf("Podaj nazwe projektu, ktorego szczegoly chcesz wyswietlic\n");
scanf("%s",plik);
if ( !strstr(plik,".") ){}
strcat(plik,".txt");
}
void auto_projekt()
{
}
void zapis_i_odczyt()
{
char plik[40];
printf("Zapis i odczyt bazy danych z pliku\n");
scanf("%s",plik);
if ( !strstr(plik,".") ){}
strcat(plik,".txt");
}
Czy tak duzo wymagam?????
Może napisz co rozumiesz pod - "edytować".
Radzę zacząć od szczegol_projekt()
lub wyswietl_projekt()
jak zrozumiesz że przy takim zapisie tego nie da się zrobić to wróć do dodaj_projekt()
;
Zrozumieć że się nie da można prościej, obejrzyj sobie plik wynikowy za pomocą notepad'a.
Poczytaj też o funkcji: fseek()