Форум программистов, компьютерный форум CyberForum.ru

Двойные кавычки в тексте. Использование strcat, lstrcat - C++

Восстановить пароль Регистрация
 
Izual
 Аватар для Izual
93 / 118 / 6
Регистрация: 13.11.2012
Сообщений: 1,517
11.02.2014, 16:31     Двойные кавычки в тексте. Использование strcat, lstrcat #1
Столкнулся с бооольшущей проблемой из за синтаксиса связанного с кавычками.
Делаю импорт из программы в Excel, потребовалось ввести формулу, которая естественно содержит кавычки, и не знаю теперь как же вообще создать текст с кавычками.
Формула в экселе:
=ЕСЛИ(A3="";"";ЕСЛИ(ЕЧИСЛО(A3);ЕСЛИ(B3="";"НТ";ЕСЛИ(ЕЧИСЛО(B3);ЕСЛИ(B3>=A3;СУММ(B3;-A3);"ОЗ");"ОТ"));"ОП"))
Кое что из этого можно сделать без кавычек(заменить A3="" на ЕПУСТО(A3), однако ввод слов типа: НТ, ОЗ, ОТ, ОП - требует кавычек в априори.(а так же отмены действия, когда действие не требуется, т.е. здесь: ;""
С помощью не хитрых манипуляций с помощью lstrcat и strcat я могу копировать всё кроме этих ковычек, но как их внедрить когда они нужны просто не знаю.
Например, начал делать:
C++
1
2
3
4
lstrcpy(sbuf,"=ЕСЛИ(D");
            itoa(j+7,cdle,10);
            strcat(sbuf,cdle);
            lstrcat(sbuf,"="";"";ЕСЛИ(ЕЧИСЛО(D");
Ну и посмотрел, что тут кавычки, в итоге естественно мне lstrcat вернёт ошибку... Скажите что делать?.. А можно мне в sbuf(типа char [200]) каким то способом добавить эти двойные кавычки как символ?... Думаю над способом, что там где нужны эти двойные кавычки - пользоваться не lstrcat, а просто добавлять символ типа:
C++
1
sbuf[30]=' " ';
Хотя код очень сильно усложнится, придётся ещё 20 строк кода добавлять, а это ещё и в цикле...
В общем прошу помощи...

Добавлено через 35 минут
На задворках гугла нашёл такое:
C++
1
strcat (command, "\"parametr v kavychkah\"");
В приницпе это сильно помогло, однако теперь моё мнение о функции strcat и strcpy ухудшилось, т.к. придётся писать свою функцию для предотвращения подобных ньюансов, которые могут стать фатальными.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.02.2014, 16:31     Двойные кавычки в тексте. Использование strcat, lstrcat
Посмотрите здесь:

C++ Функция strcat
Работа со strcat C++
C++ strcat в Visual Studio c++
C++ strcat
C++11 Оператор двойные кавычки? C++
C++ strcat
C++ функция strcat
C++ Как применить strcat?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Байт
 Аватар для Байт
13988 / 8819 / 1230
Регистрация: 24.12.2010
Сообщений: 15,975
11.02.2014, 16:52     Двойные кавычки в тексте. Использование strcat, lstrcat #2
Izual, один из выходов -замени всюду двойные кавычки на одинарные (или на символ с кодом 01). Перед окончательным выводом (когда strcat уже не повредит) замени обратно. Кстати, если в строке char s[100] содержатся двойные кавычки, функция strcat(t, s) отработает правильно.
Izual
 Аватар для Izual
93 / 118 / 6
Регистрация: 13.11.2012
Сообщений: 1,517
11.02.2014, 17:06  [ТС]     Двойные кавычки в тексте. Использование strcat, lstrcat #3
Цитата Сообщение от Байт Посмотреть сообщение
Izual, один из выходов -замени всюду двойные кавычки на одинарные (или на символ с кодом 01). Перед окончательным выводом (когда strcat уже не повредит) замени обратно. Кстати, если в строке char s[100] содержатся двойные кавычки, функция strcat(t, s) отработает правильно.
Пробовал в Excele двойный одинарные ковычки - но не сработало, хотя тоже читал что так можно. Но у меня не работает в функции.. Не знаю почему. Что за символ? =) Я так понимаю на клаве его нет...
С этими операциями замены будет сильно усложнён код, +100500 строк к уже существующим 17000 вводить не буду.
По поводу s, да когда то так пробовал, но опять же это +100500 строк, а хочется универсальности.

В общем пока что буду юзать strcat через слэш, а потом наверно сделаю универсальную функцию проверки и обработки.
В любом случае спасибо за подсказки.
Yandex
Объявления
11.02.2014, 17:06     Двойные кавычки в тексте. Использование strcat, lstrcat
Ответ Создать тему
Опции темы

Текущее время: 06:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru