Last active
August 29, 2015 14:14
-
-
Save AlessandroSpallina/3209b0c66a58e860f512 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
***** FILTRO TIMBRATURA V1.0 ***** | |
Alessandro Spallina | |
[email protected] | |
http://aleksnote.altervista.org | |
Copyright 2015 Alessandro Spallina | |
Copyng: GPL 3+ | |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
Filtra l'output del sistema delle macchinette e appende il risultato filtrato. | |
FUNZIONI: - legge al più 39 char+'\0' e, dopo averli filtrati in base alla data li scrive sul file di output. | |
- secure controller: eliminato il problema della doppia stringa non intervallata da '\n'. | |
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - | |
*/ | |
#include <stdio.h> | |
#include <string.h> | |
#include <stdlib.h> | |
#define MAXRIGALEN 41 | |
#define MAXSTRLEN 10 | |
typedef struct s_elemento | |
{ | |
char riga[MAXRIGALEN]; | |
}t_elemento; | |
void errore(char *msg) | |
{ | |
fprintf(stderr, "\n\n\aERRORE: %s\n\n", msg); | |
printf("\n"); | |
system("pause"); | |
exit(1); | |
} | |
void verifica_integrita_stringa(char *str) | |
{ | |
int len; | |
len = strlen(str); | |
if (len != 8) | |
{ | |
printf("-----------------------------------------------------------"); | |
printf("\nATTENZIONE: %s non e' di 8 caratteri, ma di %d. Riprova", str, len); | |
fprintf(stderr, "\n\aERRORE: formato data non accettata.\n"); | |
printf("-----------------------------------------------------------"); | |
printf("\n"); | |
system("pause"); | |
exit(1); | |
} | |
} | |
int main(int argc, char *argv[]) | |
{ | |
FILE *fp = NULL, *fp2=NULL; | |
t_elemento elemento; | |
int numerogiorni = 0, occorrenza = 0; | |
char str1[MAXSTRLEN]; | |
char str2[MAXSTRLEN] = "null"; | |
char controllo; | |
if (argc == 1) | |
{ | |
printf("\n ==========================="); | |
printf("\n ! TIMBRATURA v1.0 !"); | |
printf("\n ==========================="); | |
printf("\n"); | |
printf("\nInserisci quali giorni vuoi appendere nel file della timbratura."); | |
printf("\nInserisci i due giorni che intervallano il lasso di tempo desiderato."); | |
printf("\nInserisci una singola data per un solo giorno."); | |
printf("\nMetodo immissione: AAAAMMGG."); | |
printf("\n\nDigitare: "); | |
scanf("%s", str1); | |
verifica_integrita_stringa(str1); | |
numerogiorni++; | |
scanf("%c", &controllo); | |
if (controllo == ' ') | |
{ | |
scanf("%s", str2); | |
verifica_integrita_stringa(str2); | |
numerogiorni++; | |
} | |
printf("\n-----\nSTR1: %s\nSTR2: %s\nNUMEROGIORNI: %d\n-----\n", str1, str2, numerogiorni); | |
if ((fp = fopen("c:/Windows/SysWOW64/output_ef.dat", "r")) == NULL) | |
errore("File di input OUTPUT_EF.dat non trovato"); | |
if ((fp2 = fopen("c:/rilpre/SicRf.dat", "a+")) == NULL) | |
errore("File di output SICRF.dat NON TROVATO"); | |
if (numerogiorni == 1) | |
{ | |
while (fgets(elemento.riga, 40, fp) != NULL) | |
{ | |
if (strncmp(elemento.riga, str1, 8) == 0) | |
{ | |
printf("\n%s", elemento.riga); | |
fprintf(fp2, "\n%s", elemento.riga); | |
occorrenza++; | |
} | |
} | |
} | |
else | |
if (numerogiorni == 2) | |
{ | |
while (fgets(elemento.riga, 40, fp) != NULL) | |
{ | |
if (strncmp(str1, elemento.riga, 8) <= 0) | |
if (strncmp(str2, elemento.riga, 8) >= 0) | |
{ | |
printf("\n%s", elemento.riga); | |
fprintf(fp2, "\n%s", elemento.riga); | |
occorrenza++; | |
} | |
} | |
} | |
if (occorrenza>0) | |
printf("\nTrovate n. %d occorrenze", occorrenza); | |
else printf("\n\aATTENZIONE: Non sono state trovate occorrenze"); | |
fclose(fp); | |
fclose(fp2); | |
printf("\n\n***************** F I N I T O *****************\n"); | |
printf("\n=================================================================================\n"); | |
} | |
printf("\n"); | |
system("pause"); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment