Распарсить txt файл и получить текст в фигурных скобках - C (СИ)
Формулировка задачи:
Есть текстовый файл вида:
Как мне вырезать только текст который заключен в фигурные кавычки? Только это:
Можно обрезать весь текст до символа '{' и закончить на символе '}'. Помогите!
#This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser #Thu Jun 12 03:28:49 EDT 2014 /* org.eclipse.update.reconcile=false eclipse.p2.profile=epp.package.cpp osgi.instance.area.default=@user.home/workspace osgi.framework=file\:plugins/org.eclipse.osgi_3.10.0.v20140606-1445.jar equinox.use.ds=true eclipse.buildId=4.4.0.I20140606-1215 */ const int BL = 365; const real32_T B[365] = { -8.65677805e-007,-6.129384928e-007,-1.283507061e-007,6.594647743e-007,1.664639512e-006, 2.537618002e-006,2.717235702e-006,1.664022989e-006,-8.035377164e-007,-4.227551926e-006, -7.457241736e-006,-8.928994248e-006,-7.250429007e-006,-1.905289537e-006, 6.21045092e-006,1.471245287e-005,2.027619485e-005,1.974537372e-005,1.148136107e-005, -3.545642357e-006,-2.143744496e-005,-3.61411112e-005,-4.126860949e-005 };
-8.65677805e-007,-6.129384928e-007,-1.283507061e-007,6.594647743e-007,1.664639512e-006, 2.537618002e-006,2.717235702e-006,1.664022989e-006,-8.035377164e-007,-4.227551926e-006, -7.457241736e-006,-8.928994248e-006,-7.250429007e-006,-1.905289537e-006, 6.21045092e-006,1.471245287e-005,2.027619485e-005,1.974537372e-005,1.148136107e-005, -3.545642357e-006,-2.143744496e-005,-3.61411112e-005,-4.126860949e-005
Решение задачи: «Распарсить txt файл и получить текст в фигурных скобках»
textual
Листинг программы
#include <stdio.h> #include <string.h> static const char pszText[] = "\ #This configuration file was written by: org.eclipse.equinox.internal.frameworkadmin.equinox.EquinoxFwConfigFileParser\ #Thu Jun 12 03:28:49 EDT 2014\ /*\ org.eclipse.update.reconcile=false\ eclipse.p2.profile=epp.package.cpp\ osgi.instance.area.default=@user.home/workspace\ osgi.framework=file\\:plugins/org.eclipse.osgi_3.10.0.v20140606-1445.jar\ equinox.use.ds=true\ eclipse.buildId=4.4.0.I20140606-1215\ */\ const int BL = 365;\ const real32_T B[365] = {\ -8.65677805e-007,-6.129384928e-007,-1.283507061e-007,6.594647743e-007,1.664639512e-006,\ 2.537618002e-006,2.717235702e-006,1.664022989e-006,-8.035377164e-007,-4.227551926e-006,\ -7.457241736e-006,-8.928994248e-006,-7.250429007e-006,-1.905289537e-006,\ 6.21045092e-006,1.471245287e-005,2.027619485e-005,1.974537372e-005,1.148136107e-005,\ -3.545642357e-006,-2.143744496e-005,-3.61411112e-005,-4.126860949e-005\ };\ "; int main(int argc,char** argv) { char* pData = (char*)calloc(strlen(pszText) + 1,1); if (pData) { strcpy(pData,pszText); char* pBegin = strchr(pData,'{'); char* pEnd = strchr(pData,'}'); if (pBegin && pEnd && (pEnd > pBegin)) { *pEnd = 0; printf("%s\n",pBegin + 1); } free(pData); } return 0; }
Объяснение кода листинга программы
- В коде представлен текст, написанный на языке C.
- Он содержит исходные данные в виде строки
pszText
, которая представляет собой содержимое текстового файла. - Данные включают информацию о конфигурации, такую как идентификатор сборки, имя профиля, область памяти по умолчанию и т.д.
- Также в данных присутствуют значения, представленные в виде массива
B[365]
. - Значения массива
B
представляют собой числа с плавающей точкой, которые, вероятно, используются для представления временных меток. - В функции
main
выделена память для хранения содержимогоpszText
с помощью функцииcalloc
. - Содержимое
pszText
копируется в выделенную память с помощью функцииstrcpy
. - Затем в функции
main
ищутся символы `{' и '}', которые обозначают начало и конец блока текста, который нужно распечатать. - Если символы найдены и находятся в правильном порядке, то символ
}
заменяется на ноль, чтобы отделить блок текста. - Затем распечатывается содержимое между символами
{' и '}', начиная с первого символа после
{'`. - В конце функции
main
освобождается выделенная память с помощью функцииfree
. - Функция
main
возвращает значение 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д