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

Upis u datoteku po kolonama

[es] :: C/C++ programiranje :: C/C++ za početnike :: Upis u datoteku po kolonama

[ Pregleda: 2422 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Juki Simic

Član broj: 201948
Poruke: 4
*.phy.bg.ac.yu.



Profil

icon Upis u datoteku po kolonama19.11.2008. u 09:04 - pre 187 meseci
Interesuje me kako je moguc upis u datoteku po kolonama. Potpuno pojednostavljenje situacije je sledece:
Code:

#include<stdio.h>
#include<stdlib.h>

main()
{
FILE *fp
int i,j,a[20];

fp=fopen("datoteka.dat","wb");
if(fp == NULL) exit(1);

for(i=0;i<10;i++)
for(j=0;j<20;j++) 
   {
    a[j]=(float)j;
    // upis u datoteku
   }
}

Dakle i-puta je potreban upis u datoteku po kolonama. Pokusavala sam (ako je moguce sa tim f-jama) rewind() i fseek() ali nesto nije islo.

[Ovu poruku je menjao X Files dana 19.11.2008. u 10:30 GMT+1]
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Upis u datoteku po kolonama19.11.2008. u 09:32 - pre 187 meseci
Ovakva pitanja treba postavljati u forumu za pozetnike.

Dalje, kod upisujte izmedju tagova za kod:
[code]
int main ( int argc, char *argv[] )
{
// ...
return 0;
}
[/code]
... kako zbog preglednosti, tako i zbog ispravnog tumacenja "indeks od i" sto u suprotnom biva protumaceno kao ITALIC tag.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Upis u datoteku po kolonama19.11.2008. u 09:39 - pre 187 meseci
Sto se tice upisivanja u datoteku po kolonama, postoje dva nacina:

1. upis sa fiksnim pocetkom svake kolone (tj. gde tacno od odredjene unapred poznate pozicije kursora pocinje podatak)
2. upis sa TAB karakterom ('\t') kao separatorom stavki.

Prvi nacin nije dobar jer je potrebno prethodno odredjivanje granica (maksimuma) pojedinih stavki za tabelarni prikaz, da ne bismo odsekli neki podatak. Ovaj nacin je tipicno brzi za obradu (ucitavanje), mada je to skoro zanemarljivo.

Drugi nacin je dobar jer nije potrebno prethodno poznavanje granica, vec se zna da je granica TAB karakter. Ovaj nacin moze da bude manje citljiv sa ekrana za coveka ako ima puno dugackih stavki, pa se podaci prelamaju.

Sta od toga ti treba?
 
Odgovor na temu

Juki Simic

Član broj: 201948
Poruke: 4
*.phy.bg.ac.yu.



Profil

icon Re: Upis u datoteku po kolonama19.11.2008. u 09:51 - pre 187 meseci
Ok, nisam znala za pravila.
Treba mi pod jedan.
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Upis u datoteku po kolonama19.11.2008. u 09:56 - pre 187 meseci
Onda na primer ovako (u zadatku, mnozim redom "i" sa "j" i to upisujem u kolone, a ti vidi sta ti konkretno treba, princip je isti):
Code:

#include <stdio.h>
#include <stdlib.h>

int main(void)
{
    FILE *fp;
    int i,j;

    fp=fopen("datoteka.dat","wb");
    if(fp == NULL)
    {
        printf("Greska!\n");
        exit(1);
    }

    for(i=0;i<10;i++)
    {
        for(j=0;j<20;j++)
        {
            fprintf( fp, "%10.2f", (float)i*(float)j );
        }
        fprintf( fp, "\r\n" );
    }
    fclose( fp );
    system("PAUSE");
    return 0;
}


kako se vrsi formatizovanje podataka (centriranje, pozicioniranje, nacin ispisa) mozes pogledati i ovde:
http://www.thinkage.ca/english/gcos/expl/c/lib/printf.html
 
Odgovor na temu

Juki Simic

Član broj: 201948
Poruke: 4
*.phy.bg.ac.yu.



Profil

icon Re: Upis u datoteku po kolonama19.11.2008. u 10:10 - pre 187 meseci
Hvala puno ali izgleda da se nismo razumeli. Ovo bih ja nazvala upis po vrstama.
Dakle datoteka ne treba da izgleda kao:

0.0 1.0 2.0 3.0 4.0 5.0 ...... 19.0
0.0 1.0 2.0 3.0 4.0 5.0........19.0
....
....
0.0 1.0 2.0 3.0 4.0 5.0........19.0

vec

0.0 0.0 0.0 ....0.0
1.0 1.0 1.0.....1.0
....
.....
19.0 19.0 19.0 ...19.0

ne znam da li sam jasna.
Dakle formira se niz (koji naravno nisu ovi brojevi) i upise u kolonu. Pa se u sledecem prolazu opet formira niz i upise u sledecu kolonu.




[Ovu poruku je menjao Juki Simic dana 19.11.2008. u 11:24 GMT+1]
 
Odgovor na temu

X Files
Vladimir Stefanovic
Pozarevac

SuperModerator
Član broj: 15100
Poruke: 4902
*.tekostolac.co.yu.

Jabber: xfiles@elitesecurity.org


+638 Profil

icon Re: Upis u datoteku po kolonama19.11.2008. u 10:46 - pre 187 meseci
Dakle, ti hoces da prvi upis bude recimo:
1
2
3
4
5

...drugi upis da bude:
1 6
2 7
3 8
4 9
5 10

... treci upis:
1 6 11
2 7 12
3 8 13
4 9 14
5 10 15

itd...?

Umetanje podataka u datoteku nije moguce, je to nije memory stream vec file stream.

Uz to, C jezik je jako nespretan kada su u pitanju takve akrobacije, pa se stoga i koriste unapred pripremljeni mehanizmi.

U principu treba procitati ceo sadrzaj fajla u memoriju (string stream, vektor stringova ili dvodimenzionalni char), izvrsiti modifikaciju i snimiti ponovo.

Pitanje je sta od toga mozes i smes da koristis, odnosno, da li je to neki zadatak za skolu ili nesto sto treba tebi licno. Da li smes da koristis C++ i STL biblioeteu?
 
Odgovor na temu

Juki Simic

Član broj: 201948
Poruke: 4
*.phy.bg.ac.yu.



Profil

icon Re: Upis u datoteku po kolonama19.11.2008. u 10:58 - pre 187 meseci
Upravo takav upis.

Kod je jako veliki a i ne znam c++ tako da u u ovom trenutku nema smisla prepisivati ga u njega. Nije za skolu lol.

Znaci nije moguce recimo pomocu f-je rewind() vratiti se na pocetak datoteke pa uz pomoc fseek() zadati pozicije sledeceg upisa? Kao sto vec rekoh to mi nije poslo za rukom, ali po opisu tih f-ja deluje da bi eventualno mogle da odrade stvar.
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: Upis u datoteku po kolonama

[ Pregleda: 2422 | Odgovora: 8 ] > FB > Twit

Postavi temu Odgovori

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