Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732

Слова через запятую

05.12.2011, 03:39. Показов 2136. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется огромный файл с ~350 тысячами строк (sql дамп) и его требуется немного подправить.
В каждой строчке идут имена полей через запятую.
Теперь суть задачи. Было два поля город и деревня, сделали одно населенный пункт, собственно нужно пройтись по каждой строчке и проверить допустим слово после 10 запятой, если оно скажем NULL то вместо этого нулл вставить слово, которое идет после 15 запятой
Собственно как обратится к фрагменту текста после n-ого разделителя и его удалить/изменить и т.д.
И еще, как в каждом таком слове все буквы кроме первой сделать маленькими. Например было АБГД а стало Абгд?
Где то недавно тут видел подобное но не могу вспомнить где.
Заранее спасибо за помощь
П.с. Под словом имею ввиду фрагмент текста между 2мя запятыми
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
05.12.2011, 03:39
Ответы с готовыми решениями:

Разбить строку (слова идут через запятую) на отдельные слова.
Хочу реализовать на сайте поиск по ключевым словам. Ключевые слова хочу вводить в 1 форму через запятые, как мне их потом разбить на...

Ввод слова и чисел через запятую
Добрый день Помогите пожалуйста решить задачу. Мне нужно написать интерактивный калькулятор матриц. Я застрял в одном месте. ...

Распечатать слова через запятую, заключив печатную строку в скобки
В двумерном массиве записаны слова, представляющие собой последовательность цифр, завершающихся 0. Необходимо распечатать слова через...

8
Прогер
 Аватар для Programmer.
632 / 263 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
05.12.2011, 05:06
Flyer,

Цитата Сообщение от Flyer Посмотреть сообщение
Теперь суть задачи. Было два поля город и деревня, сделали одно населенный пункт, собственно нужно пройтись по каждой строчке и проверить допустим слово после 10 запятой, если оно скажем NULL то вместо этого нулл вставить слово, которое идет после 15 запятой
Собственно как обратится к фрагменту текста после n-ого разделителя и его удалить/изменить и т.д.
По сути должны бить 2 цикла. 1 пробежит по конкретным строку а 2-ой уже переедёт на следуюшую строку...



Цитата Сообщение от Flyer Посмотреть сообщение
как в каждом таком слове все буквы кроме первой сделать маленькими. Например было АБГД а стало Абгд?
StrLower если надо уменшить букву а StrUpper на оборот
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
05.12.2011, 12:42  [ТС]
ну, я по большому счету спрашивал про функцию подобную php'ной explode(), которая разбивает строку на массив слов по разделителю, и implode , что делает противоположное

Добавлено через 1 час 20 минут
Вот походу нашел то, что нужно.
C++
1
2
3
4
UnicodeString str = Memo1->Text;
TSysCharSet Tws,Tcs;
Tcs<<','; Tws<<' ';
ExtractStrings(Tcs,Tws,str.w_str(),Memo1->Lines);
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
05.12.2011, 15:05
По описанию из первого поста никогда бы не подумал, что здесь нужна функция ExtractStrings.
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
05.12.2011, 15:38  [ТС]
Ок, тогда по описанию из первого поста какая нужна бы была функция?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
05.12.2011, 15:46
без понятия, самописная, наверное
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
05.12.2011, 19:13  [ТС]
ну да ладно, и так для одноразового использования прога.
только вот проблема. когда в ExtractStrings попадает строчка
INSERT INTO `cards` (`nomer`, `surname`, `name`, `midname`, `gender`, `year`, `region`, `subregion`, `city`, `street`, `house`, `ap`, `work`) VALUES ('ТБ006', 'ГАЛЬОНСЬКА', 'ГАННА', 'ДЕМ\'ЯНІВНА', 'Ж', 1938, 'ТЕРНОПІЛЬСЬКА', 20, 'ТЕРЕБОВЛЯ', 'ЧАЙКІВСЬКОГО', '15', NULL, NULL, NULL);
то делит только до 'Ж' . Начиная с 'Ж' и до конца все идет одной строчкой. то есть перестает работать после слова с \' . Как можно обойти?
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
05.12.2011, 20:38
C++
1
2
3
TSysCharSet Tws,Tcs;
Tcs<<'\\'; Tws<<'';
ExtractStrings(Tcs,Tws,str.w_str(),Memo1->Lines);
0
wtf!?
 Аватар для Flyer
750 / 281 / 25
Регистрация: 21.05.2010
Сообщений: 732
05.12.2011, 21:02  [ТС]
ну дык так вообще не будет делить и не делит
C++
1
Tcs<<',';
ведь указание разделителя\ей
Прочитал в хелпе
returns, newline characters, and quote characters (single or double) are always treated as separators
думаю как бы обойти

хмм, может просто перед ExtractStrings делать реплейс \' на например @@@, а потом после окончания всех действий с извлеченными строками, после собирания назад в одну строку менять @@@ на \'
как по мне так прям гениальная идея
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.12.2011, 21:02
Помогаю со студенческими работами здесь

Как наиболее быстро соединить все слова в одну строку через запятую?
Как по бистрому соеденить все слова в одну строку через кому? (можно через контатенацию) Слова расположены так: aaaaa ббббб ссссс ...

Строка: Вывести через запятую слова, одинаково читающиеся справа налево и слева направо.
Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими), составить программу обработки данной строки, выводящую через...

Дана строка, заканчивающийся точкой. Вывести на экран через запятую слова, содержащие три буквы
Задание: Дана строка, содержащая текст, заканчивающийся точкой. Вывести на экран через запятую слова, содержащие три буквы ...

Вывести через запятую:слова, начинающиеся с прописной буквы, в которых все остальные буквы строчные
Помогите пожалуйста с задачкой. Дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Составить программу...

Считать значение с текстового файла, перечисленные через запятую или через пробел
Не могу найти функцию для дельфи, где выбранный мной файл считывался, занося значения в переменные. Help


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru