Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- typedef struct {
- char *user;
- char *topic;
- char *error;
- } topic_match;
- /*
- * tämän siis PITÄIS palauttaa ennemmin viesti tyyliin "topikki <topik> löyty ja sen laitto käyttäjä <käyttäjä>"
- * mut vitun sprintf aiheuttaa virheitä (sen takia myös regcomp ei suostunu toimimaan!)
- * toimii mut mut ihan vitun vammasta paskaa
- * tää lukee topicit tekstitiedostosta jossa ne on tyyliin <käyttäjä>\t<topic>\n
- */
- topic_match find_topic_match(char *search) {
- printf("search %s\n",search);
- regex_t regex;
- int reti;
- puts(pattern);*/
- char *pattern = "(\\b|[!:.,])";
- int total_len = 2*strlen(pattern)+strlen(search)+1;
- char *str = (char *)malloc(total_len);
- strcat(str,pattern);
- strcat(str,search);
- strcat(str,pattern);
- printf("str: %s\n",str);
- /*mitä helvetitä, kun pistin ton formatin ja searchin sprintf:llä char * tyyliseen muuttujaan nii regcomp ei onnistunu
- * vittu miten vammasta, nyt kuitenkin toimii*/
- reti = regcomp(®ex,str,REG_EXTENDED);
- FILE *file;
- char line[300];
- file = fopen("topicit.txt","r");
- topic_match match;
- match.user="";
- match.topic="";
- while(fgets(line,300,file) != NULL) {
- rtrim(line);
- /* jos vikalla rivillä on vaan tyhjämerkkejä jostain syystä nii turha parsia useria ja topiccia */
- if(strlen(line) == 0) {
- break;
- }
- char *user = strtok(line,"\t");
- char *topic = strtok(NULL,"\t");
- printf("topic: %s user: %s\n",topic,user);
- reti = regexec(®ex,topic,0,NULL,0);
- if(!reti) {
- match.user = user;
- match.topic = topic;
- match.error = "";
- break;
- }
- }
- fclose(file);
- free(str);
- regfree(®ex);
- if(strlen(match.topic) == 0) {
- match.error = "not found!";
- }
- return match;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement