Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <wchar.h>
- #include <string.h>
- #define MAXSIZE 500
- #define ROWSIZE 3000
- typedef struct INFILE
- {
- wchar_t personSex [MAXSIZE];
- wchar_t surname [MAXSIZE];
- wchar_t firstName[MAXSIZE];
- wchar_t personCountry[MAXSIZE];
- wchar_t personAddressDetails[MAXSIZE];
- wchar_t email[MAXSIZE];
- wchar_t personTitle[MAXSIZE];
- wchar_t personRemarks[MAXSIZE];
- wchar_t personCity1[MAXSIZE];
- wchar_t personCountry1[MAXSIZE];
- wchar_t personTelefax[MAXSIZE];
- wchar_t personAddressDetails1[MAXSIZE];
- wchar_t personCity[MAXSIZE];
- wchar_t personAddress[MAXSIZE];
- wchar_t personPhone[MAXSIZE];
- wchar_t personMobilePhone[MAXSIZE];
- wchar_t personDirectPhone[MAXSIZE];
- wchar_t personPostCode1[MAXSIZE];
- wchar_t personPostCode[MAXSIZE];
- wchar_t personLanguage[MAXSIZE];
- wchar_t personAddress1[MAXSIZE];
- wchar_t earlyUpset1[MAXSIZE];
- wchar_t earlyUpset2[MAXSIZE];
- wchar_t earlyUpset3[MAXSIZE];
- wchar_t earlyUpset4[MAXSIZE];
- wchar_t earlyUpset5[MAXSIZE];
- wchar_t earlyUpset6[MAXSIZE];
- wchar_t earlyUpset7[MAXSIZE];
- wchar_t earlyUpset8[MAXSIZE];
- wchar_t earlyUpset9[MAXSIZE];
- wchar_t earlyUpset10[MAXSIZE];
- wchar_t earlyUpset11[MAXSIZE];
- wchar_t earlyUpset12[MAXSIZE];
- wchar_t earlyUpset13[MAXSIZE];
- wchar_t earlyUpset14[MAXSIZE];
- wchar_t earlyUpset15[MAXSIZE];
- wchar_t earlyUpset16[MAXSIZE];
- wchar_t earlyUpset17[MAXSIZE];
- wchar_t earlyUpset18[MAXSIZE];
- wchar_t earlyUpset19[MAXSIZE];
- wchar_t earlyUpset20[MAXSIZE];
- wchar_t earlyUpset21[MAXSIZE];
- wchar_t earlyUpset22[MAXSIZE];
- wchar_t earlyUpset23[MAXSIZE];
- wchar_t earlyUpset24[MAXSIZE];
- wchar_t CustomerID[MAXSIZE];
- wchar_t Result[MAXSIZE];
- wchar_t CallResult[MAXSIZE];
- wchar_t classifier[MAXSIZE];
- wchar_t Amount[MAXSIZE];
- wchar_t callCount[MAXSIZE];
- wchar_t date[MAXSIZE];
- wchar_t agent[MAXSIZE];
- wchar_t agentNumber[MAXSIZE];
- }input;
- int fnValidateDate(wchar_t *date);
- wchar_t *fnCheckDate();
- void fnOutFiles(input *details);
- void fnLoad(int startIndex, int endIndex, wchar_t *buffer, int column, input *files);
- void fnStart();
- int main()
- {
- fnStart();
- }
- int fnValidateDate(wchar_t *date)
- {
- int iCheck = 0;
- int iCounter = 0;
- int result = 0;
- wchar_t *token = wcstok(date,L"-");
- iCheck = _wtoi(token);
- while(token)
- {
- if(iCounter == 1)
- {
- if(iCheck < 1 || iCheck > 12)
- {
- result = 1;
- }
- }
- else if(iCounter == 2)
- {
- if(iCheck < 1 || iCheck > 31)
- {
- result = 1;
- }
- }
- token = wcstok(NULL,L"-");
- iCheck = _wtoi(token);
- iCounter ++;
- //printf("\nCounter: %d, token: %ls, iCheck : %d\n",iCounter,token,iCheck);
- }
- return result;
- }
- wchar_t *fnCheckDate()
- {
- wchar_t *Date = malloc(15 * sizeof(wchar_t));
- wchar_t Date2[15];
- printf("Please enter the date:\nFormat YYYY-MM-DD\n");
- wscanf(L"%s",Date);
- wcscpy (Date2,Date);
- if(fnValidateDate(Date2) == 1)
- {
- printf("Invalid date.\n");
- exit(1);
- }
- //printf("\nString 1: %ls\nString 2: %ls\n",Date,Date2);
- return Date;
- }
- void fnOutFiles(input *details)
- {
- wchar_t* ptrDate = fnCheckDate();
- wprintf(L"%ls\n",ptrDate);
- wchar_t specifier[15];
- //printf("Please enter your classifier:\n");
- //wscanf(L"%s",specifier);
- FILE *Device = fopen("Device.txt","w+");
- FILE *NoDevice = fopen("NoDevice.txt","w+");
- //printf("\nTest 1\n");
- fprintf(Device,"repoffer\treptarrif\trepLCSterm\trepPromo\trepname\treppid\treplkNum\trepbulstat\trepCompany\trepoffAddress\trepDeliveryAddress\treptel\trepcaseID\trepsim\trepprice\trepcredit\trepAdd\trepdiscount\trepnote\trepbilling\trepkmid\trepch_tp_fee\trepdevice_mobile\trepimei_mobile\trepdevice_tablet\trepimei_tablet\trepdevice_stick\trepimei_stick\trepresNum\trepdiscount_type\trepsim_status\trepdevice_accessory\trepaccessory_price\trepexpected_date\trepdata_TP\treplising\trepcontract_number\trepoperation_number\trepin_user\trepdata_relation_id\trepind_yes_to_all\trepsim_needed");
- fprintf(NoDevice,"repoffer\treptariff\trepLCSterm\trepPromo\trepname\treppid\treplkNum\trepbulstat\trepCompany\trepoffAddress\trepDeliveryAddress\treptel\trepcaseID\trepcredit_limit\trepAdd\trepdiscount\trepnote\trepbilling\trepkmid\trepch_tp_fee\trepresNum\trepdiscount_type\trepexpected_date\trepdata_TP\treppilot\trepcontract_number\trepoperation_number\trepin_user\trepcampaign\trepdata_relation_id\trepind_yes_to_all");
- fclose(Device);
- fclose(NoDevice);
- for(int i = 1; i < 30; i++)
- {
- if(wcscmp(ptrDate,details[i].date) == 0)
- {
- wprintf(L"1. %ls\n",ptrDate);
- Device = fopen("Device.txt","a");
- NoDevice=fopen("NoDevice.txt","a");
- if(wcscmp(details[i].personTelefax,L"") != 0)
- {
- fwprintf(Device,L"8\t%ls\t2\t1\t%ls\t \t \t \t \t%ls\t%ls\t%ls\t \t \t \t \t%ls\t \t%ls\t%ls\t \t \t%ls\t \t \t \t \t \t%ls\t \t \t \t \t \t \t0\t \t \t%ls\t%ls\t%ls\t0\n",
- details[i].surname,details[i].firstName,details[i].personCountry,details[i].personAddressDetails,details[i].personPhone, details[i].personTitle,
- details[i].personRemarks,details[i].personCity1,details[i],details[i].personTelefax,details[i].personCountry1,details[i].agent,details[i].personSex,details[i].personAddress1);
- }
- else
- {
- fwprintf(NoDevice,L"7\t%ls\t2\t1\t%ls\t \t \t \t \t%ls\t%ls\t%ls\t \t \t%ls\t \t%ls\t%ls\t \t \t%ls\t \t \t \t \t \t \t%ls\t \t%ls\t%ls\n",
- details[i].surname,details[i].firstName,details[i].personCountry,details[i].personAddressDetails,details[i].personPhone,details[i].personTitle,details[i].personRemarks,
- details[i].personCity1,details[i].personCountry1,details[i].agent,details[i].personSex,details[i].personAddress1);
- }
- }
- else
- {
- wprintf(L"2. %ls\nwcscmp: %d\ndate: %ls\n",ptrDate,wcscmp(ptrDate,details[i].date), details[i].date);
- }
- }
- }
- void fnLoad(int startIndex, int endIndex, wchar_t *buffer, int column, input *files)
- {
- wchar_t temp[MAXSIZE] = {0};
- //printf("\nfnLoad Call\n",column);
- wcsncpy(temp, buffer + startIndex, endIndex - startIndex);
- switch (column)
- {
- case 0:
- wcscpy(files->personSex,temp);
- break;
- case 1:
- wcscpy(files->surname,temp);
- break;
- case 2:
- wcscpy(files->firstName,temp);
- break;
- case 3:
- wcscpy(files->personCountry,temp);
- break;
- case 4:
- wcscpy(files->personAddressDetails,temp);
- break;
- case 5:
- wcscpy(files->email, temp);
- break;
- case 6:
- wcscpy(files->personTitle,temp);
- break;
- case 7:
- wcscpy(files->personRemarks,temp);
- break;
- case 8:
- wcscpy(files->personCity1,temp);
- break;
- case 9:
- wcscpy(files->personCountry1,temp);
- break;
- case 10:
- wcscpy(files->personTelefax,temp);
- break;
- case 11:
- wcscpy(files->personAddressDetails1,temp);
- break;
- case 12:
- wcscpy(files->personCity,temp);
- break;
- case 13:
- wcscpy(files->personAddress,temp);
- break;
- case 14:
- wcscpy(files->personPhone,temp);
- break;
- case 15:
- wcscpy(files->personMobilePhone,temp);
- break;
- case 16:
- wcscpy(files->personDirectPhone ,temp);
- break;
- case 17:
- wcscpy(files->personPostCode1,temp);
- break;
- case 18:
- wcscpy(files->personPostCode,temp);
- break;
- case 19:
- wcscpy(files->personLanguage,temp);
- break;
- case 20:
- wcscpy(files->personAddress1,temp);
- if (wcscmp(files->personAddress1, L"GDPR_Consent"))
- {
- wcscpy(files->personAddress1, L"0");
- }
- else
- {
- wcscpy(files->personAddress1, L"1");
- }
- break;
- case 21:
- wcscpy(files->earlyUpset1,temp);
- break;
- case 22:
- wcscpy(files->earlyUpset2,temp);
- break;
- case 23:
- wcscpy(files->earlyUpset3,temp);
- break;
- case 24:
- wcscpy(files->earlyUpset4,temp);
- break;
- case 25:
- wcscpy(files->earlyUpset5,temp);
- break;
- case 26:
- wcscpy(files->earlyUpset6,temp);
- break;
- case 27:
- wcscpy(files->earlyUpset7,temp);
- break;
- case 28:
- wcscpy(files->earlyUpset8,temp);
- break;
- case 29:
- wcscpy(files->earlyUpset9,temp);
- break;
- case 30:
- wcscpy(files->earlyUpset10,temp);
- break;
- case 31:
- wcscpy(files->earlyUpset11,temp);
- break;
- case 32:
- wcscpy(files->earlyUpset12,temp);
- break;
- case 33:
- wcscpy(files->earlyUpset13,temp);
- break;
- case 34:
- wcscpy(files->earlyUpset14,temp);
- break;
- case 35:
- wcscpy(files->earlyUpset15,temp);
- break;
- case 36:
- wcscpy(files->earlyUpset16,temp);
- break;
- case 37:
- wcscpy(files->earlyUpset17,temp);
- break;
- case 38:
- wcscpy(files->earlyUpset18,temp);
- break;
- case 39:
- wcscpy(files->earlyUpset19,temp);
- break;
- case 40:
- wcscpy(files->earlyUpset20,temp);
- break;
- case 41:
- wcscpy(files->earlyUpset21,temp);
- break;
- case 42:
- wcscpy(files->earlyUpset22,temp);
- break;
- case 43:
- wcscpy(files->earlyUpset23,temp);
- break;
- case 44:
- wcscpy(files->earlyUpset24,temp);
- break;
- case 45:
- wcscpy(files->CustomerID,temp);
- break;
- case 46:
- wcscpy(files->Result, temp);
- break;
- case 47:
- wcscpy(files->CallResult, temp);
- break;
- case 48:
- wcscpy(files->classifier, temp);
- break;
- case 49:
- wcscpy(files->Amount, temp);
- break;
- case 50:
- wcscpy(files->callCount, temp);
- break;
- case 51:
- //wcscpy(files->date, temp);
- for(int i = 0; i < 10; i ++)
- {
- *files->date = temp[0];
- *(files->date + 1) = temp[1];
- *(files->date + 2) = temp[2];
- *(files->date + 3) = temp[3];
- *(files->date + 4) = temp[4];
- *(files->date + 5) = temp[5];
- *(files->date + 6) = temp[6];
- *(files->date + 7) = temp[7];
- *(files->date + 8) = temp[8];
- *(files->date + 9) = temp[9];
- }
- break;
- case 52:
- wcscpy(files->agent, temp);
- break;
- case 53:
- wcscpy(files->agentNumber , temp);
- break;
- default:
- break;
- }
- fwprintf(stdout,L"%s\n",temp);
- }
- void fnStart()
- {
- input files[30] = {0};
- char file_name[25] = {0};
- printf("\nEnter file name :");
- scanf("%s", file_name);
- FILE *outfile = fopen("teamTXT.txt","w");
- FILE *infile = fopen(file_name,"r");
- //FILE *noPhone = NULL;
- //FILE *Phone = NULL;
- int structCount = 0;
- int column = 0;
- if (infile == NULL)
- {
- printf("Error opening the file.\n");
- exit(1);
- }
- else
- {
- while (!feof(infile))
- {
- wchar_t buffer[ROWSIZE] = {0};
- int currPos = 0;
- int startPos = 0;
- if (fgetws(buffer,ROWSIZE,infile))
- {
- //wprintf(L"%ls\n\n\n",buffer);
- while(buffer[currPos] != '\0')
- {
- //fwprintf(outfile,buffer);
- if (buffer[currPos] == '\t')
- {
- fnLoad(startPos, currPos ,buffer, column, &(files[structCount]));
- column ++;
- //printf("\nColumn count: %d",column);
- //printf(" Struct count: %d\n",structCount);
- startPos = currPos + 1;
- }
- currPos++;
- }
- structCount++;
- column = 0;
- memset(buffer, 0, sizeof(buffer));
- }
- //printf("\nFinal struct count: %d",structCount);
- }
- }
- fnOutFiles(files);
- fclose(infile);
- fclose(outfile);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement