Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

pisanje-citanje u tekstualni fajl

[es] :: C programiranje :: pisanje-citanje u tekstualni fajl

[ Pregleda: 2365 | Odgovora: 17 ]

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Fenix

Član broj: 18672
Poruke: 64
*.dslam.ob.bih.net.ba.



Profil

icon pisanje-citanje u tekstualni fajl01.06.2004. u 09:27

Moze li neko navesti (najbolje konkretan primjer) kako da podatke iz txt fajla ucitam u neki niz (podaci u fajlu odvojeni novim redom) i obrnuto (iz niza snimim u txt fajl)?
01.06.2004. u 09:27 

4063
Zaharije Pasalic

Član broj: 19862
Poruke: 29
*.bbone.utic.net.ba.

Sajt: www.maspic.netfirms.com


Profil

icon Re: pisanje-citanje u tekstualni fajl03.06.2004. u 12:23
Ako znas koliko ima linija u fajlu, to je jednostavno:

Code:

#define BROJ_LINIJA 100

char *Tabela[BROJ_LINIJA];

void ucitaj() {
FILE *dat = fopen("fajl.txt", "r");
char tmp[200];
     for(int i=0; i<BROJ_LINIJA; i++) {
         fgets(tmp, 199, dat); 
         Tabela[i] = new char[strlen(tmp)+1];
         strcpy(Tabela[i], tmp); 
     }
fclose(dat);
}

void pisi() {
FILE *dat = fopen("fajl.txt", "w");
     for(int i=0; i<BROJ_LINIJA; i++) {
          fputs(tmp, dat); 
fclose(dat);
}


Ako ne znas duzinu fajla u linijama, postaje malo komplikovanije. Jedan nacin je da kosristis listu, a da svaki clan sadrzi jednu liniju.

Drugi nacin je da citav fajl procitas binarno u jedan string. Svaka ce ti linija biti odvojena sa '\n' i/ili '\r'. Pa smisli kako ces skenirati za svoje potrebe. Ovo ti postaje komplikovanije ako pocnes da ubacivas nove linije ili nesto slicno.
03.06.2004. u 12:23 

4063
Zaharije Pasalic

Član broj: 19862
Poruke: 29
*.bbone.utic.net.ba.

Sajt: www.maspic.netfirms.com


Profil

icon Re: pisanje-citanje u tekstualni fajl03.06.2004. u 12:25
Usput: nisam siguran da gornji kod radi 100%
03.06.2004. u 12:25 

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 379
*.hidmet.sr.gov.yu.

Sajt: www.hidmet.sr.gov.yu/lati..


Profil

icon Re: pisanje-citanje u tekstualni fajl03.06.2004. u 16:44
Citat:
kako da podatke iz txt fajla ucitam u neki niz
Kog tipa su podaci?
Koliko ce biti dugacki redovi u TXT fajli (ima li ogranicenja)?
....?
Sve u svemu, daj malo vise podataka....
03.06.2004. u 16:44 

igac
Banjaluka

Član broj: 415
Poruke: 562
*.teleklik.net



Profil

icon Re: pisanje-citanje u tekstualni fajl03.06.2004. u 21:17
Citat:

Ako ne znas duzinu fajla u linijama, postaje malo komplikovanije.


... ljudi su izmislili EOF za to :)
"nice town, i'll take it..."
03.06.2004. u 21:17 

Fenix

Član broj: 18672
Poruke: 64
*.dslam.ob.bih.net.ba.



Profil

icon Re: pisanje-citanje u tekstualni fajl04.06.2004. u 10:49
Citat:
idb:Kog tipa su podaci?
Koliko ce biti dugacki redovi u TXT fajli (ima li ogranicenja)?
....?
Sve u svemu, daj malo vise podataka....



Tip podataka, ASCII stringovi (recimo notepad-ov txt fajl).
Redovi su različite dužine, mogu eventualno imati podatak o dužini najdužeg među njima, ako to nešto pomaže.
Poznata je dužina fajla u linijama (broj redova).
04.06.2004. u 10:49 

***ArChAnGeL***
Ivan Stajic
Beograd

Član broj: 18217
Poruke: 17
*.ptt.yu



Profil

icon Re: pisanje-citanje u tekstualni fajl04.06.2004. u 12:25
Citat:
idb:Kog tipa su podaci?
Koliko ce biti dugacki redovi u TXT fajli (ima li ogranicenja)?
....?
Sve u svemu, daj malo vise podataka....


Nisam bas siguran koga tipa mogu da budu podatci u txt file-u sem char?
04.06.2004. u 12:25 

scud
Novi Sad

Član broj: 6882
Poruke: 38
*.ftn.ns.ac.yu



Profil

icon Re: pisanje-citanje u tekstualni fajl06.06.2004. u 16:43
Ova tema tacno odgovara mojoj nedoumici... Kako textualni fajl azurirati? Odnosno u datoteku koju smo recimo otvorili za citanje i za pisanje, bi trebao da unesem izmene nekih stringova koji su razlicite duzine, tacnije trebao bi da zamenim kraci string duzim stringom koji se nalazi negde u textu na neodredjenom mestu (znaci treba naci string koji menjamo). Kako ovo izvesti?
06.06.2004. u 16:43 

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 379
*.hidmet.sr.gov.yu.

Sajt: www.hidmet.sr.gov.yu/lati..


Profil

icon Re: pisanje-citanje u tekstualni fajl07.06.2004. u 10:19
Ako te problem jos uvek muci, evo ti nesto u C stilu:
Code:
/*Windows 2000, Dev-Cpp 4.9.8.9*/
#include <stdio.h>
#define MAXB 999

struct ss{
    char lin[MAXB];
} my_lin[100];

int main(int argc, char *argv[])
{
    int i=0,j;
    /* Ucitaj redove */
    FILE * fu = fopen( "oldfile.txt", "r" );
    while (!feof(fu)) fgets(my_lin[i++].lin,MAXB,fu);
    fclose(fu);

    /* Upisi redove u drugi fajl */
    FILE * fi = fopen( "newfile.txt", "w" );
    for (j=0;j<i;j++) fputs(my_lin[j].lin,fi);
    fclose(fi);
    system("PAUSE");    
    return 0;
}


Obrati paznju da fgets(..) ucitava i znak za novi red pa ces ga verovatno morati brisati.
07.06.2004. u 10:19 

scud
Novi Sad

Član broj: 6882
Poruke: 38
*.telekom.yu



Profil

icon Re: pisanje-citanje u tekstualni fajl07.06.2004. u 10:59
Hvala na kodu, ali moje pitanje je bilo kako to izvesti kada otvorimo jednu jedinu datoteku u kojoj je text koji zelimo menjati. Znaci pretpostavka je da je datoteka otvorena sa fopen("datoteka.txt", "r+t") znaci sa opcijom citanje i pisanje u nju istovremeno. Takav kod sto si paste-ovao sam bas i ja napisao, ali ja zelim da ne kreiram novu datoteku. U tome je caka :) Ali ok, kazem hvala jos jednom na kodu, pokusacu nekako da se snadjem.
07.06.2004. u 10:59 

idb
Ivan Bulic
Beograd

Član broj: 4436
Poruke: 379
*.hidmet.sr.gov.yu.

Sajt: www.hidmet.sr.gov.yu/lati..


Profil

icon Re: pisanje-citanje u tekstualni fajl07.06.2004. u 15:27
Mozda je ovo resenje:
Klasa wxTextFile (http://www.wxwindows.org/manuals/2.4.2/wx385.htm)
iz wxWidgets-a ( http://www.wxwindows.org/ ) sadrzi funkcije koje mogu da pristupe bilo kojoj liniji u TXT fajlu. Redove mozes brisati, insertovati nove (na bilo koje mesto), dodavati nove na kraj fajla,..

..., naravno sve to radi ako koristis wxWidgets, a ne koristi ga puno ljudi.
07.06.2004. u 15:27 

scud
Novi Sad

Član broj: 6882
Poruke: 38
*.ftn.ns.ac.yu



Profil

icon Re: pisanje-citanje u tekstualni fajl09.06.2004. u 23:52
Prosto ne mogu da verujem da ne moze to da se izvede pomocu STL-a! Ustvari siguran sam da moze, samo treba znati kako... hmmm
09.06.2004. u 23:52 

Marko Stankovic

Član broj: 11
Poruke: 306
*.rvkds.net

Jabber: urobor@elitesecurity.org
ICQ: 42897384


Profil

icon Re: pisanje-citanje u tekstualni fajl10.06.2004. u 18:27
Mozda postoji i neko elegantnije resenje za tvoj problem ali recimo mozes da stvoris neki privremeni fajl u koji ces da prepises tu datoteku sa izmenjenim sadrzajem i na kraju otvoris prvu datoteku iskljucivo za pisanje, znaci sa rezimom "w" a ne "a", i prepises u nju celu privremenu datoteku.

Ako radis ovako onda ti preporucujem da pogledas funkciju tmpfile, njeno zaglavlje je:

FILE *tmpfile(void);

i zaglavlje se nalazi u stdio.h.

Funkcija kreira privremenu datoteku sa rezimom "w+" koji ce biti obrisan kada budu zatvorene sve reference ka njemu.
Nadam se da ce ti ovo pomoci, ako ne kazi pa da smislimo nesto drugo.
I drink to make other people interesting.
10.06.2004. u 18:27 

scud
Novi Sad

Član broj: 6882
Poruke: 38
*.telekom.yu



Profil

icon Re: pisanje-citanje u tekstualni fajl11.06.2004. u 01:26
E ok je ovaj tvoj predlog. Tako sam i uradio inace. Samo me je zanimalo da li je moguce intervenisati sve u jednom te istom fajlu koristeci STL.
11.06.2004. u 01:26 

maxydelanoche
Marija Jankovic
Ispred kompjutera

Član broj: 78435
Poruke: 120
212.200.118.*

ICQ: 392117157
Sajt: maxydelanoche.spaces.live..


Profil

icon Re: pisanje-citanje u tekstualni fajl21.11.2006. u 15:06
Kako ucitati podatke iz .txt fajla, tip integer, poznat broj tih int varijabli, ali programski jezik C#???

P.S. Ne znam da li postoji podforum za C# na ES-u, pa sam ovde postavila pitanje.
Nista nije nemoguce. Za nemoguce je samo potrebno malo vise vremena.

http://viva-fizika.org
21.11.2006. u 15:06 

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 2668
89.216.236.*

Jabber: xfiles@elitesecurity.org
Sajt: www.antivari.com


Profil

icon Re: pisanje-citanje u tekstualni fajl21.11.2006. u 19:10
Postoji .NET forum, a C# je deo toga.

FREEWARE
Di rečnik, v1.0.058 (srp-eng/eng-srp priručni rečnik)
http://www.antivari.com
21.11.2006. u 19:10 

dragansm
Dragan Smiljanic

Član broj: 38170
Poruke: 177
*.funcom.com.



Profil

icon Re: pisanje-citanje u tekstualni fajl22.11.2006. u 17:24
Code:

  char text[] = "blabla";
  char buffer[2049];
  buffer[2048] = 0;
  FILE *f = fopen( "c:\\temp.txt", "r+t" );
  if ( f )
  {
    int nRead = fread( buffer, 1, 2048, f  );
    printf( buffer );
    fseek ( f, 0, SEEK_SET );
    fwrite( text, sizeof( text ), 1, f );
    fseek ( f, 0, SEEK_SET );
    nRead = fread( buffer, 1, 2048, f  );
    printf( buffer );
    fclose( f );
  }

Otprilike kako mozes da "pises-brises"
Neko je pomenuo stl (ako sam dobro upamtio)... stl nema nesto preterano veze sa ovim :)
22.11.2006. u 17:24 

Deyan_80
Kragujevac

Član broj: 117038
Poruke: 15
*.uis.kg.ac.yu.



Profil

icon Re: pisanje-citanje u tekstualni fajl14.12.2006. u 12:02
Da citas iz fajla koristi f-ju fscanf a kao sto je neko pre mene naveo

while(!feof(IMEFAJLA)){

fscanf(IMEFAJLA,"%s",&a)
}

a - promenljiva u koju upisujes stringove

Mozes umesto %s da navedes %c pa ce ti upisivati karaktere.

Ovako ti nije bitno koliko linija imas posto while ide do kraja fajla.
14.12.2006. u 12:02 

[es] :: C programiranje :: pisanje-citanje u tekstualni fajl

[ Pregleda: 2365 | Odgovora: 17 ]

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.