|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
28.01.2009, 05:35 | #1 |
Пользователь
Регистрация: 10.05.2008
Сообщений: 36
|
String - странность или кривые руки
Доброго времени суток!
Есть у меня функция, работает нормально, результат дает корректный, но вместе со второй частью работает некорректно, подскажите, пожалуйста, где грабли, а то полночи бьюсь уже. В memo1 у меня текст, 22 строчки из файла. Не меньше 1000 символов короче. Функция: Код:
Код:
СпасибО! |
28.01.2009, 05:46 | #2 | |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
Цитата:
begin ... if not (s[i] in ['A'..'Z','a'..'z']) then temp:=temp+s[i]; ... проверка на входимость в множество латиницы - обратное действие вашему, и мне кажется намного проще - мне не пришлось писать такую строчку в константе PS: - а вот понял, что вы хотите сделать - мое предложение отпадает Последний раз редактировалось capta1n; 28.01.2009 в 05:49. |
|
28.01.2009, 05:57 | #3 | |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
да и ваша проблема заключается в том, что вы пишите в конце Result:=s, а такой переменной нет, да она и не нужна - надо результат возвращать как значение самой функции - это значит надо писать Affinna_Crypt:=s
Цитата:
PS: elsin - а вы случайно не играете в игру Total Annihilation Kingdoms? Там просто герой есть Elsin Последний раз редактировалось capta1n; 28.01.2009 в 06:01. |
|
28.01.2009, 06:36 | #4 |
Пользователь
Регистрация: 10.05.2008
Сообщений: 36
|
Дело в том, что у меня есть другая функция, система там примерно таже. Там все работает на "ура". Тут еще такая вещь происходит при работе: с одними ключами а и б все нормально, с другими криво, т.е. результат функции нормальный в любом случае, а вот присвоение s1:=affinna_crypt(memo1.text,a,b) уже присваивает только маленький кусок результата функции. Начал грешить на функцию, но требования простоты чисел соблюдены, все условия выполняются. P.S.: хорошая гейма была, да? Но мало кто о ней помнит. У всех ник ассоциировался с Ельциным :-)
|
28.01.2009, 10:02 | #5 |
Пользователь
Регистрация: 01.11.2007
Сообщений: 45
|
У тебя, при вычислениях в функции, в string попадает символ "#0", символ "#0" означает конец строки и все что после него в memo.text не записывается
|
28.01.2009, 10:17 | #6 |
Форумчанин
Регистрация: 06.12.2008
Сообщений: 613
|
не могли бы вы цитаткой выделить - мне даже интересно о чем вы говорите
|
28.01.2009, 10:58 | #7 |
Пользователь
Регистрация: 01.11.2007
Сообщений: 45
|
Ну вот смотрите:
в memo записываем строку "5н9)июуИЮЪ/" Код:
s = 8?ВМГ^'#0'п,ыс как мы видим, у нас в строке появился символ #0 (напомню что он означает конец строки); далее смотрим что у нас записалось в Memo1.Text: Memo1.Text = 8?ВМГ^ Теперь как у нас получается этот символ конца строки: P:=pos('e',RusA); P = 49 (49*11+19) mod 93 = 0 RusA[0] = #0 "Ключевое слово Mod дает остаток от деления делимого на делитель." http://www.delphibasics.ru/ Последний раз редактировалось NOOB; 28.01.2009 в 11:11. |
28.01.2009, 12:35 | #8 |
Пользователь
Регистрация: 24.01.2009
Сообщений: 38
|
Переменная Result существует. Я сам ее видел
NOOB ноль тут нипричем, но идея хорошая. Он же берет символы из масива... Srting есть масив где первым елементом есть его длинна. Пусть будет так Код:
|
28.01.2009, 12:55 | #9 | |
Пользователь
Регистрация: 01.11.2007
Сообщений: 45
|
Еще как при чем и не "ноль", а символ конца строки. В функции же массив RusA [1..93], а получается обращаешься к 0-ой ячейке. Я же все подробно расписал.
Цитата:
|
|
28.01.2009, 13:07 | #10 | |
Старожил
Регистрация: 06.08.2007
Сообщений: 2,183
|
Цитата:
То, что зелённым, служит для возвращения значиения любым типам функций. Почитайте на досуге: http://www.delphibasics.ru/Result.php |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как получить чужой комп в свои руки | zetrix | Безопасность, Шифрование | 7 | 13.11.2008 16:32 |
это вирус или кривые руки? | AngelOfDeath | Безопасность, Шифрование | 4 | 03.06.2008 14:04 |
C# + Access + кривые руки | pu4koff | Общие вопросы .NET | 2 | 15.04.2008 14:42 |
как узнать string или Real | Влажимир | Общие вопросы Delphi | 2 | 11.04.2008 17:06 |