Ako pripisat do suboru nove data

Sekcia o programovaní, programovacích jazykoch...
Používateľov profilový obrázok
Memnon
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3957
Dátum registrácie: Po 11. Sep, 2006, 02:00
Bydlisko: Bratislava

Ako pripisat do suboru nove data

Príspevok od používateľa Memnon »

zdravim
potreboval by som poradit ako pridam do suboru nove data
mam ho totiz v slucke pomocou volania programu

ide ide program nacita dake udaje a ja si na ich spracovanie a zapis zavolam funkciu ktora tieto udaje ulozi do suboru
potom sa vrati s5 do hlavneho programu a ten zase posle dalsie data ktore treba v pomocnej funkcii spracovat a zapisat

ako teda spravit aby sa pri opatovnom otvoreni suboru data neprepisal ale aby sa zapisali za uz existujuce data?

ide o tom ze musim vypisovat kalendar a davat za kazdym mesiacom slucku
if(prvy_den!=0)fprintf(fw,"\n");
for(medzery=1;medzery<=prvy_den;++medzery)fprintf(fw," ");
for(M=1;M<=pocet_dni;++M){
if(M<10){
if((((M+prvy_den)%7)-1)!=0)fprintf(fw," %d",M);
else fprintf(fw,"\n %d",M);
}
else{
if((((M+prvy_den)%7)-1)!=0)fprintf(fw," %d",M);
else fprintf(fw,"\n %d",M);
}
}......
je neesteticke a asi aj neefektivne
MB:ASUS Maximus XI Hero / CPU:i9 9900k@5.1(4.8cache)@1.234V / CPUcooler:AC Liquid Freezer II 240 + CM Maker Gel / RAM:4x8GB Patriot Viper 4133Mhz@4oooCL18 / GPU:Gigabyte RTX 4070ti Eagle@0.925V/2670/24600 / SSD:Samsung 970 Evo Plus 2TB / HeadSet:Steelseries Arctis 7 / mouse:Steelseries Rival 650 / keyboard:Fnatic Streak RGB / PSU:Seasonic Focus Plus 850 gold / case:Fractal Design Define R6 Black + Noctua NF-A14 PWM / monitor:Acer Predator XB323UGP
Používateľov profilový obrázok
abcd
Používateľ
Používateľ
Príspevky: 337
Dátum registrácie: Št 20. Apr, 2006, 02:00
Bydlisko: Cífer

Re: Ako pripisat do suboru nove data

Príspevok od používateľa abcd »

Ked znova otváras súbor tak ho otváraj s atribútom a ako pridať.automaticky bude pridávať na koniec súboru.ked máš súbor stale otvorení,teda nezatvoril si ho,použi funkciu fseek,pomocou nej sa nastavis na koniec súboru
Toshiba Satellite A200 1S6 (3GB RAM T7500 2,2 GHz 4MB L2)
Používateľov profilový obrázok
Memnon
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3957
Dátum registrácie: Po 11. Sep, 2006, 02:00
Bydlisko: Bratislava

Re: Ako pripisat do suboru nove data

Príspevok od používateľa Memnon »

nooo mne by sa hodilo keby ze mi napises ako sa ten parameter vola
napada ma ze to bude asi (a) ako ADD
lebo mam Herouta co je dvoj zvazkove vydanie a rozne parametre pre otvaranie suboru su az v druhom zvazku :)
MB:ASUS Maximus XI Hero / CPU:i9 9900k@5.1(4.8cache)@1.234V / CPUcooler:AC Liquid Freezer II 240 + CM Maker Gel / RAM:4x8GB Patriot Viper 4133Mhz@4oooCL18 / GPU:Gigabyte RTX 4070ti Eagle@0.925V/2670/24600 / SSD:Samsung 970 Evo Plus 2TB / HeadSet:Steelseries Arctis 7 / mouse:Steelseries Rival 650 / keyboard:Fnatic Streak RGB / PSU:Seasonic Focus Plus 850 gold / case:Fractal Design Define R6 Black + Noctua NF-A14 PWM / monitor:Acer Predator XB323UGP
Používateľov profilový obrázok
abcd
Používateľ
Používateľ
Príspevky: 337
Dátum registrácie: Št 20. Apr, 2006, 02:00
Bydlisko: Cífer

Re: Ako pripisat do suboru nove data

Príspevok od používateľa abcd »

A ako append -fopen_s(&subor,nazov,"ab");
súbor je ukazovateľ na súbor,názov je názov súboru,a ako append,b ako binarny.môžeš vymeniť b za t pre textový súbor.
Fseek(subor,0,SEEK_END); toto využijes ak by si sa nachádzal niekde v súbore a chceš sa presunúť na koniec.napr hľadás info,nájdeš a potom chceš zapísať niečo na koniec súboru
Toshiba Satellite A200 1S6 (3GB RAM T7500 2,2 GHz 4MB L2)
Používateľov profilový obrázok
Memnon
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3957
Dátum registrácie: Po 11. Sep, 2006, 02:00
Bydlisko: Bratislava

Re: Ako pripisat do suboru nove data

Príspevok od používateľa Memnon »

parada fungieren

este posledna vec chyba k dokonalosti toho co chcem nakodit ako poslat volanej funkcii cely retazec?
MB:ASUS Maximus XI Hero / CPU:i9 9900k@5.1(4.8cache)@1.234V / CPUcooler:AC Liquid Freezer II 240 + CM Maker Gel / RAM:4x8GB Patriot Viper 4133Mhz@4oooCL18 / GPU:Gigabyte RTX 4070ti Eagle@0.925V/2670/24600 / SSD:Samsung 970 Evo Plus 2TB / HeadSet:Steelseries Arctis 7 / mouse:Steelseries Rival 650 / keyboard:Fnatic Streak RGB / PSU:Seasonic Focus Plus 850 gold / case:Fractal Design Define R6 Black + Noctua NF-A14 PWM / monitor:Acer Predator XB323UGP
Používateľov profilový obrázok
abcd
Používateľ
Používateľ
Príspevky: 337
Dátum registrácie: Št 20. Apr, 2006, 02:00
Bydlisko: Cífer

Re: Ako pripisat do suboru nove data

Príspevok od používateľa abcd »

No keďže nepoznám celý kód poriadne neviem čo chceš.chceš zapísať nejaký reťazec?do hlavičky funkcie si daj pole znakov alebo string.a tento vo funkcie zapíšes napr pomocou fwrite(&retazec,veľkosť zápisovaneho objektu-buď charu alebo stringu,pocet-ak je char tak veľkosť tohto poľa charov,pre string 1,subor) inak nezabudni aj testovať vrátené hodnoty tychto funkcii.aby si vedel či sa dá otvoriť súbor,zápisovat...
Toshiba Satellite A200 1S6 (3GB RAM T7500 2,2 GHz 4MB L2)
Používateľov profilový obrázok
Memnon
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3957
Dátum registrácie: Po 11. Sep, 2006, 02:00
Bydlisko: Bratislava

Re: Ako pripisat do suboru nove data

Príspevok od používateľa Memnon »

no takto ja viem presne aky retazec to ma byt
pisem kalendar ktoreho vypis je do suboru
potrebujem urobit nasledovne

zapisat retazec ako je tento
char str[10]="februar"; atd
bude to pevny retazec bez nastavenia

a tento retazec poslat do volania funkcie trebars
vzpocet(cislo1,cislo2, <sem treba napisat nieco abz sa mi preniesol ten retazec>);

a v zavolanej funkcii Vypocet musim vypisat ten retazec aby som nemusel otvarat zbytocne dva krat subor

cize jak zapisat retazec teda do coho?
aky format ma mat tretia premnna(retazec) aby sa poslal do funkcie vypocet?
najlepsie to mozno pochopis na samotnom programe, ide o to ze na retazcoch este nie sme

#include "stdafx.h"
#include "stdio.h"

int rozpis_mesiaca (int i,int p);

int main()
{
FILE *fw,*fa;
int prvy_den,rok,pocet_dni;

printf("Zadaj rok, pre ktory chces kalendar\n");
scanf("%d",&rok);
printf("Na ktory den padne prvy januar v tomto roku\n");
scanf("%d",&prvy_den);
--prvy_den;

chcem sa vyhnut aby pri kazdom mesiaci musel byt otvoreny subor

ako zadeklarujem retazec?(s obsahom mesiac)
pocet_dni=31;
prvy_den=rozpis_mesiaca(prvy_den,pocet_dni,aky typ premennej posielam funkcii?);



....
..
.
.
return 0;
}

int rozpis_mesiaca (int i,int p,akeho typu ma byt tato premnna?)
{
FILE *fa;
int M,medzery;
fa=fopen("VYPIS.txt","a");
fprintf(fa," sem sa ma vypisat mesiac \n\n Po Ut St Sv Pi So Ne\n----------------------",aky typ premennej ma ist sem?);
if(i!=0)fprintf(fa,"\n");
for(medzery=1;medzery<=i;++medzery)fprintf(fa," ");
for(M=1;M<=p;++M){
if(M<10){
if((((M+i)%7)-1)!=0)fprintf(fa," %d",M);
else fprintf(fa,"\n %d",M);
}
else{
if((((M+i)%7)-1)!=0)fprintf(fa," %d",M);
else fprintf(fa,"\n %d",M);
}
}
fprintf(fa,"\n\n");
fclose(fa);
return (((M+i)-1)%7);
}
MB:ASUS Maximus XI Hero / CPU:i9 9900k@5.1(4.8cache)@1.234V / CPUcooler:AC Liquid Freezer II 240 + CM Maker Gel / RAM:4x8GB Patriot Viper 4133Mhz@4oooCL18 / GPU:Gigabyte RTX 4070ti Eagle@0.925V/2670/24600 / SSD:Samsung 970 Evo Plus 2TB / HeadSet:Steelseries Arctis 7 / mouse:Steelseries Rival 650 / keyboard:Fnatic Streak RGB / PSU:Seasonic Focus Plus 850 gold / case:Fractal Design Define R6 Black + Noctua NF-A14 PWM / monitor:Acer Predator XB323UGP
Používateľov profilový obrázok
abcd
Používateľ
Používateľ
Príspevky: 337
Dátum registrácie: Št 20. Apr, 2006, 02:00
Bydlisko: Cífer

Re: Ako pripisat do suboru nove data

Príspevok od používateľa abcd »

Vsak deklaráciu reťazca si sám ukázal-teda ako pole znakov alebo ukazovateľ na char,teda char *retazec="februar",no a túto premenu dáš ako dalsim parametrom funkcie-"retazec",pre oba spôsoby.v deklarácií funkcie môžeš znova napísať buď char mesiac[10] alebo to s tým ukazovateľom a vo funkcii ju dáš vypísať.dúfam že je to jasné.
Toshiba Satellite A200 1S6 (3GB RAM T7500 2,2 GHz 4MB L2)
Používateľov profilový obrázok
Memnon
Pokročilý používateľ
Pokročilý používateľ
Príspevky: 3957
Dátum registrácie: Po 11. Sep, 2006, 02:00
Bydlisko: Bratislava

Re: Ako pripisat do suboru nove data

Príspevok od používateľa Memnon »

amen hotovo
dikes za usmernenie problem bol v tom ze retazce sme este nebrali a akosi som nevdel ako presne maju fungovat
tema moze byt konecne uzavreta a este raz ti velmi pekne dakujem
MB:ASUS Maximus XI Hero / CPU:i9 9900k@5.1(4.8cache)@1.234V / CPUcooler:AC Liquid Freezer II 240 + CM Maker Gel / RAM:4x8GB Patriot Viper 4133Mhz@4oooCL18 / GPU:Gigabyte RTX 4070ti Eagle@0.925V/2670/24600 / SSD:Samsung 970 Evo Plus 2TB / HeadSet:Steelseries Arctis 7 / mouse:Steelseries Rival 650 / keyboard:Fnatic Streak RGB / PSU:Seasonic Focus Plus 850 gold / case:Fractal Design Define R6 Black + Noctua NF-A14 PWM / monitor:Acer Predator XB323UGP

Návrat na "Programovanie"