Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h> //Am sters aproape toate liniile din fisier, pentru ca imi e mai
- #include <stdlib.h> //usor sa vad daca programul merge bine.
- #include <string.h>
- #define SIZELINE 100
- typedef struct node //struct pentru lista
- {
- char songName[SIZELINE];
- struct node *next;
- }LIST;
- FILE *pFile; //pointer pentru fisierul initial
- FILE *pTitleFile; //pointer pentru fisierul in care se vor scrie doar titlurile
- char singleLine[SIZELINE]; //variabila pentru fisierul initial
- char singleLineFromTitleFile[SIZELINE]; //variabila pentru fisierul care se va creea
- char *title; //token pentru strtok
- int main()
- {
- pTitleFile=fopen("onlyTitles.txt","w"); //deschid fisierul care va fi creat
- pFile=fopen("classic-rock-song-list.csv","r"); //deschid fisierul care este dat
- int commaCounter=0; //contor pentru virgule
- int songsCounter=0; //contor pentru cate cantece sunt in fisierul dat P.S: am sters majoritatea pentru a-mi fi mai usor
- if(pTitleFile==NULL)
- {
- printf("File doesn't exist!\n"); //verificare fisier creat
- }
- if(pFile==NULL)
- {
- printf("File doesn't exist!\n"); //verificare fisier dat
- }
- while(fgets(singleLine,SIZELINE,pFile) != NULL) //loop pentru preluarea informatiilor din fisierul dat
- {
- title=strtok(singleLine,",");
- commaCounter=1; //fortez doar pana la prima virgula
- if(commaCounter==1)
- {
- printf("%s\n",title); //printare titlu in terminal
- fprintf(pTitleFile,"%s\n",title); //printare titlu in noul fisier
- }
- songsCounter++; //iterare pentru numarul de cantece
- }
- fclose(pFile); //inchid fisierul dat
- fclose(pTitleFile); //inchid fisierul creat
- printf("\nWe have printed %d title songs\n",songsCounter);
- printf("\n");
- LIST *head; //creez o variabila pentru capul listei
- LIST *current; //creez o variabila pentru nodul curent
- head=current=NULL; //initializez cele doua variabile cu NULL
- pTitleFile=fopen("onlyTitles.txt","r"); //deschid fisierul creat doar cu titlurile dar de aceasta data il citesc
- if(pTitleFile==NULL)
- {
- printf("File doesn't exist!\n"); //verific fisierul doar cu titlurile
- }
- while(fgets(singleLineFromTitleFile,SIZELINE,pTitleFile) != NULL) //loop pentru preluarea informatiilor din fisier
- {
- LIST *node=malloc(sizeof(LIST)); //aloc dinamic un node
- strcpy(node->songName,singleLineFromTitleFile); //copiem in nodul de tip char valoarea extrasa din fisier
- node->next=NULL; //initializam urmatorul nod cu NULL
- if(head==NULL)
- {
- current=head=node; //daca head este NULL current si node sunt egale cu head
- }
- else
- {
- current=current->next=node;
- }
- }
- fclose(pTitleFile); //inchid fisierul cu titlurile
- for(current=head ; current ; current=current->next)
- {
- printf("%s",current->songName); //print pentru fiecare nod
- free(current); //eliberez memoria pentru fiecare nod
- }
- printf("\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement