![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#21 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
![]()
Didim, выложи своё детище, ну...
|
![]() |
![]() |
![]() |
#22 |
Пользователь
Регистрация: 05.11.2011
Сообщений: 16
|
![]()
GunSmoker, нет такого варианта, кроме ошибок, связанных с выделением памяти и т.п. Сделал массивом, и больше проблемы нет.
Если есть строка s длиной 10 символов, длина проверена, но вдруг обращение s[5] вызывает ошибку... Я именно об этом говрю: строка приходит в нормальном состоянии, поэтому исключены ошибки и в других местах. Проверено и состояние строки, и значение l... Тут нет вариантов. Код:
___________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 07.11.2011 в 09:57. |
![]() |
![]() |
![]() |
#23 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Didim,
если Вам хочется узнать, в чём была ошибка в вашем прошлом коде, то давайте продолжим разбираться. я не пойму, почему Вам не выложить ЦЕЛИКОМ исходный код программы?!! ![]() но хотите изврящаться и выкладывать код малюсенькими кусочками, давайте попробуем так.. 1) описание переменных, приведите, пожалуйста. особенно интересует, какого типа rst ? (и где она задаётся? Глобальная переменная?) 2) дайте, пожалуйста ПОЛНЫЙ текст процедуры rstr (начиная со строчки procedure rstr; ...) ___________ GunSmoker, завидую Вашему терпению и настойчивости. ![]() Похоже, автора темы проблема с тем, что его первоначальный код не работал волнует НАМНОГО меньше, чем Вас... |
![]() |
![]() |
![]() |
#24 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]() Цитата:
![]()
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|
![]() |
![]() |
![]() |
#25 |
Пользователь
Регистрация: 05.11.2011
Сообщений: 16
|
![]()
Serge_Bliznykov, если выложить всё, будет выдано предназначение и всякое личное, что там присутствует. Пришлось бы переименовывать названия, пути... Но тут приведено всё, что нужно: видите, что содержимое строки ss берется из файла ReadLn(fr1,ss), и сразу передаётся в процедуру rstr, в которой и возникает ошибка.
Строка берется: Код:
Код:
Код:
Уже писал тут, что переменные rst и ss имели тип string. Код:
И есть такой вопрос: при rst:=''; выделенная память осовобождается? Или - нет, и на следующем цикле запрашивается новая порция? Последний раз редактировалось Didim; 08.11.2011 в 11:13. |
![]() |
![]() |
![]() |
#26 | |
Пользователь
Регистрация: 05.11.2011
Сообщений: 16
|
![]()
GunSmoker, Вы сами говорите:
Цитата:
Последний раз редактировалось Didim; 08.11.2011 в 11:02. |
|
![]() |
![]() |
![]() |
#27 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Didim, Вы издеваетесь?!!
я же задал Вам два простых вопроса. Где ответ на первый?! ГДЕ ОПИСЫВАЕТСЯ переменная rst ?! Какого она типа? я уже молчу о том, что глобальные переменные - ЭТО ЗЛО!! Особенно там, где в них НЕТ необходимости!! например, вариант 1 Код:
Код:
Вы же играете в каких-то скрытных партизан... Ну и ладно. Продолжайте свои игры, наступайте на грабли, обвиняйте разработчиков Delphi в том, что у них "есть ошибка библиотеки"... Хозяин - барин... p.s. всё хотел спросить, а зачем минус 1 в строчке l := length(ss)-1; Вас что, последний символ строки не интересует! Последний раз редактировалось Serge_Bliznykov; 08.11.2011 в 11:26. |
![]() |
![]() |
![]() |
#28 | |||
Пользователь
Регистрация: 05.11.2011
Сообщений: 16
|
![]() Цитата:
Цитата:
Время, затраченное на обработку: С использованием строк 2734 С использованием массивов 609 Больше ничего не менялось. Цитата:
Иначе, печатает | Кстати, с той же задачей справляется за 128 милисекунд Тут весь код реверса стоило засунуть между ReadLn и WriteLn. Ещё лучше - всю задачу засунуть в dll на Си. Последний раз редактировалось Didim; 08.11.2011 в 12:01. |
|||
![]() |
![]() |
![]() |
#29 |
Форумчанин
Регистрация: 05.11.2011
Сообщений: 102
|
![]() |
![]() |
![]() |
![]() |
#30 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
в данной случае данная процедура ИЗМЕНЯЕТ одну переменную. Мне кажется ЛОГИЧНЕЕ, если будет видно, что именно она делает (а конкретно ВОЗВРАЩАЕТ перевёрнутую строку). Это раз. и второе. Вместо Цитата:
Код:
![]() |
||
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Странная ошибка при работе с вводом значения (dev C++) | Николай ПН | Помощь студентам | 2 | 21.06.2011 11:56 |
ошибка при обработке функции класса "missing type specifier - int assumed" | askerpro | Общие вопросы C/C++ | 8 | 02.06.2010 23:09 |
Ошибка при обработке StringGrid + использование XPManifest | noname_06 | Общие вопросы Delphi | 3 | 18.01.2009 20:52 |
программа на си по обработке строки | riptror | Общие вопросы C/C++ | 1 | 20.11.2007 20:54 |
Странная ошибка при выполнении | okolobaxa | Общие вопросы Delphi | 2 | 03.07.2007 00:47 |