Ejemplo n.º 1
0
void MStringResize(MString_t *String, size_t Length)
{
	/* Calculate the new byte-count we 
	 * need to encompass with blocks */
	size_t DataLength = DIVUP(Length, MSTRING_BLOCK_SIZE) * MSTRING_BLOCK_SIZE;

	/* Expand and reset buffer */
	void *Data = dsalloc(DataLength);
	memset(Data, 0, DataLength);

	/* Copy old data over */
	memcpy(Data, String->Data, String->Length);

	/* Free the old buffer */
	dsfree(String->Data);

	/* Update string to new buffer */
	String->MaxLength = DataLength;
	String->Data = Data;
}
Ejemplo n.º 2
0
Archivo: cdbc.c Proyecto: jpmens/cdbc
int cdbc_get(CDBC *cd, char *docid)
{
    str uri;
    int rc;

    if (!cd)
        return CDBC_ERROR;

    if (!cd->dbname)
        return CDBC_NODBNAME;

    dsinit(&uri);

    dscat(&uri, cd->dbname);
    dsadd(&uri, '/');
    dscat(&uri, docid);

    rc = cdbc_request(cd, (char *)dsstring(&uri));
    dsfree(&uri);
    return (rc);

}
Ejemplo n.º 3
0
int main()
{
	char **txt1 = NULL, **txt2 = NULL;
	short isprogend = 0, istxt1 = 0, istxt2 = 0, strct;

	SetConsoleCP(1251);
	SetConsoleOutputCP(1251);
	system("title = Курсовая работа. Обработка текста");

	do
	{
		system("cls");
		switch (menu())
		{
		case '1': //ввод текста
			if (txt1 != NULL)
				txt1 = (char**)dsfree((void**)txt1, strct);
			if (txt2 != NULL)
				txt2 = (char**)(dsfree((void**)txt2, strct));
			istxt1 = 1;
			istxt2 = 0;
			system("cls");
			rewind(stdin);
			txt1 = gettxt(&strct);
			printf_s("\nВвод завершен!\n");
			waitforenter();
			break;
		case '2': //вывод исходного текста
			system("cls");
			if (istxt1)
			{
					printf_s("Исходный текст:\n");
					putstrings(txt1, strct);
			}
			else
				printf_s("Ошибка! Сначала введите исходный текст");
			printf_s("\n");
			waitforenter();
			break;
		case '3': //обработка исходного текста
			system("cls");
			if (istxt1)
			{
				if (txt2 == NULL)
				{
					istxt2 = 1;
					txt2 = wordproc(txt1, strct);
					printf_s("Текст обработан");
				}
				else
					printf_s("Текст уже был обработан");
			}
			else
				printf_s("Ошибка! Сначала введите исходный текст");
			printf_s("\n");
			waitforenter();
			break;
		case '4': //вывод текста
			system("cls");
			if (istxt2)
			{
				printf_s("Результирующий текст:\n");
				putstrings(txt2, strct);
			}
			else
				printf_s("Ошибка! Сначала обработайте исходный текст");
			printf_s("\n");
			waitforenter();
			break;
		case '5': //справка
			system("cls");
			reference();
			printf_s("\n");
			waitforenter();
			break;
		case '6': //выход
			system("cls");
			printf_s("Вы уверены, что хотите выйти?(1-Да/0-Нет): ");
			scanf_s("%hi", &isprogend);
			rewind(stdin);
			break;
		default:
			printf_s("Ошибка! Введите существующий пункт меню\n");
			waitforenter();
		}
	} while (!isprogend);
	if (txt1 != NULL)
		txt1 = (char**)dsfree((void**)txt1, strct);
	if (txt1 != NULL)
		txt1 = (char**)dsfree((void**)txt1, strct);
	return 0;
}