Example #1
0
int main(int argc, char* argv[])
{
    setlocale(0, "russian");
    int i=0;
    int N=0;
    char* str= NULL;  // строка для работы
    FILE *f;          // исходный файл
    FILE *f1;         // файл для печати
    unsigned long long te, tb;

    if (argc < 4)
    {
        printf("Нет достаточного числа аргументов!");
        return BADARG;
    }

    f = fopen(argv[1], "r");
    if (f == NULL)
    {
        printf("Невозможно открыть исходный файл!");
        return BADINFILE;
    }

    f1 = fopen(argv[2], "w");
    if (f1 == NULL)
    {
        printf("Невозможно открыть файл результата!");
        fclose(f);
        return BADOUTFILE;
    }

    if (strcmp(argv[3],"")==0)
    {
        printf("Заменяемая строка пуста!");
        fclose(f);
        fclose(f1);
        return BADINSUBSTR;
    }
    te = tick();
    while ((str = freadstring(f, &N)) != NULL)
    {
        i++;
        if (strreplace(&str, argv[3], argv[4], N) == -1)
        {
            printf("Строка %i не была обработана и выведена в файл", i);
        }
        else
            fprintf(f1, "%s", str);
        free(str);
    }
    tb = tick();
    fclose(f);
    fclose(f1);
    printf("\nУспешно завершено! Время работы программы: %llu", tb - te);
    getch();
    return 0;
}
Example #2
0
char* read_string(FILE* file, char* skip_chars, int delim, size_t max_len)
{
	int tmp;
	byte tmp2;
	char* str = NULL;
	c_array skip;
	str = (skip_chars) ? skip_chars : (char*)"";

	SET_C_ARRAY(skip, (byte*)skip_chars, 1, strlen(str));

	do {
		tmp = getc(file);
		if (tmp == EOF)
			return NULL;
		tmp2 = tmp;
	} while (is_any(&skip, &tmp2, are_equal_uchar));
	ungetc(tmp, file);
	do {
		str = freadstring(file, delim, max_len);
	} while (!str);

	return str;
}
Example #3
0
char* freadline(FILE* input)
{
	return freadstring(input, '\n', 0);	
}