![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Homer12 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 3.1.2007 Репутация: нет Всего: нет |
Проблема мне надо записать текст в определеную строчку ListBox например в 0 строку
вот код берет текст Edit1.text:=ListBox1.Items[0]; а вторая проблема я не могу проверить есть одинаковый текст в ListBox например: я вожу два раза одно и тоже слово и он должен выдать что такоу слово есть в списки Зарание блогодарен. |
|||
|
||||
| anwe |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 748 Регистрация: 2.9.2006 Репутация: нет Всего: 23 |
||||
|
||||
| Sunvas |
|
|||
|
Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
-------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
BoxТакая проблема нужно сравнить две строчки в ListBox, т.е 2и4, 5и7, 8и10 срочки находятся и выводятся в ListBox
Это сообщение отредактировал(а) alf138 - 15.11.2009, 13:01 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
if ListBox1.Items.Strings[2]=ListBox1.Items.Strings[4] ........
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Большое спасибо. Осталось придумать алгоритм проверки.
Это сообщение отредактировал(а) alf138 - 15.11.2009, 13:22 |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
А какой алгоритм может быть: проходишь в цикле по строчкам и сравниваешь.
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Так у меня получилось что например в строчке 2 есть что то а вот в 4 еще нету так вот еще, обьясню подробнее у меня задание создать подобие игры в города на технологии socket, т.е один игрок посылает название вот у меня получается
1 строчка = само название города 2 строчка = последний эллемент в этом слове 3 строчка = первый эллемент. Теперь мне на сервере нужно придумать цикл чтобы при ошибки он еще и отправлял сообщение клиент о неправильном слове . |
|||
|
||||
| Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: 9 Всего: 130 |
Есть такое свойство: ListBox1.Items.Count. -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
| alf138 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Спасибо огромное, получилось. Теперь алгоритм остался
И какой тут алгорим ... Что то на ум не чего не приходит. При том нужно заменить одну строчку
2=>4 5=>7 8=>10 Это сообщение отредактировал(а) alf138 - 15.11.2009, 15:24 |
||||
|
|||||
| amsoft |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 3 Всего: 4 |
чтобы пробежаться по всему списку, можно сделать так
PS
делим на 3, т.к. в списке кол-во строк всегда кратно 3, а отнимаем 2, чтобы цикл начал работать, когда в списке кол-во строк не меньше 6 Это сообщение отредактировал(а) amsoft - 15.11.2009, 16:45 --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
||||
|
|||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Не работает, первый раз отрабатывает потом затухает.
Притом первый раз отрабатывает не отправляя сообщения а потмо на все шлет безразлично какие буквы первая или последняя. |
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 3 Всего: 4 |
все работает
у тебя же должны быть равны строки с индексами 2 и 4, 5 и 7 а в твоем примере строка с индексом 2 равна а, 4 строка - х, 5 - а, 7 - л поэтому и не работает --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Мучил неделю не чего сдвинуть не могу все как было так и осталось
Все циклы котрые писали выше впихнуть не удалось, или ошибка или работает один раз. Подскажите пожалуйста где неправильно ? |
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 3 Всего: 4 |
мне не понятна структура твоего списка
у тебя список имеет такой вид: 0: название города1 1: последняя буква 2: первая буква 3: название города2 4: последняя буква 5: первая буква теперь ты сравниваешь строку 2 со строкой 4 (т.е. первую букву в названии города1 с последней буквой в названии города2) По-моему последняя буква в названии города1 должна совпадать с первой буквой в названии города2 Поменяй список на такой вид: 0: название города1 1: первая буква 2: последняя буква 3: название города2 4: первая буква 5: последняя буква теперь можешь сравнивать строку 2 со строкой 4, 5 с 7, 8 с 10 с помощью следующего кода
в этом коде всегда проверяются только последние строки в списке (по-моему тебе это и надо) --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Спасибо большое, просто огромное. Неделю бился, и ваше пытался передлать. Эххх хотел плюсик нажать а не активно. Если вам будет не трудно может подскажите как сохранить букву если следующее слово не на ту букву, массив придется придумывать ? Т.е. написал город а следующий город не на ту букву, что бы сохранялась буква слова которое правильно написанно.
|
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Всем спасибо огромное все сделал. Теперь все номалек просто дописал
Во останется вопрос с регистром вот не знаю, делать его или нет если да то как... Но все равно всем большое спасибо, особено "amsoft". |
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 3 Всего: 4 |
насчет регистра:
AnsiUpperCase - перевод текста в верхний регистр AnsiLowerCase - перевод текста в нижний регистр PS Не за что Это сообщение отредактировал(а) amsoft - 21.11.2009, 20:31 --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
||||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Опять вас побеспокою, вопрос такой. Нужно сделать два цикла первый который будет проходить по алфавиту от "а до я" а второй будет считать кол-во каждый символов. Задание звучит так Подсчитать частоту появления каждого символа в поллученном сообщение. На сколько понимаю нужно сделать два массива первый для букв, второй для кол-во раз их повления. Но остается вопрос а как выводить все это ?
Это сообщение отредактировал(а) alf138 - 26.11.2009, 04:22 |
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 3 Всего: 4 |
alf138, по-хорошему надо было начать новую тему
А теперь о главном: Каждому символу соответствует свой код, поэтому можно обойтись и с одним массивом, в ячейки которого будем записывать кол-во вхожений определенной буквы, а индекс записываемой ячейки будем определять по коду буквы. Резултат можно вывести в компоненте TListBox, который я использую в примере:
PS диапозон [192..223] - коды заглавных букв русского алфавита ,а диапозон [224..255] - коды прописных букв русского алфавита --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| alf138 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Перекопал интернет на предмет подключение новой формы, нужно что бы при запуске программы выскакива окно настройки
Если нужно создать новую тему подскажите куда. P.S. Вот думаю насчет корректности, но нужно чтобы при запуске выскакивало окно ip адреса и желательно порта подключения. Насчет алфавита
Но по приходу на клиента получается все в строчку, думаю как разделить на столбики. Это сообщение отредактировал(а) alf138 - 27.11.2009, 21:21 |
||||
|
|||||
| alf138 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Все прихотдящие сообщения пишет в одну строчку, как разделить на строчки ?
Думал дописать в конце строчки запятую и разделять по строчно но как то замудренно получается
|
||||
|
|||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Используй стандартный разделитель - #13#10. Либо TListBox.Items.Delimiter и TListBox.Items.DelimitedText -------------------- |
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Не хочет не пойму что не так делаю
Это сообщение отредактировал(а) alf138 - 29.11.2009, 09:25 |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
В отладчике смотрел? Точно приходит нужная строка с разделителем? -------------------- |
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
У меня на клиента уходит такая строка
Т.е приходит "Буква А встречается в тексте 2 раза|", и так все буквы от "а до я" но не делится. И вообще пишет "Undeclared indentifier "Delimited"" Это сообщение отредактировал(а) alf138 - 29.11.2009, 16:17 |
|||
|
||||
| kami |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1806 Регистрация: 25.8.2007 Где: Санкт-Петербург Репутация: 23 Всего: 72 |
Это хорошо, что не разбивается. А то может и приходить сперва "Буква А встре" и потом "чается в тексте 2 раза". Это только к примеру. Разбиение и склейку пакетов (повторюсь) в TCP никто не отменял. Посему - нужно над TCP надстраивать свой протокол обмена, к примеру - первые 4 байта - длина сообщения, дальше - само сообщение. И на приемной стороне накапливать принятую информацию в буфер, а потом анализировать ее на предмет полностью пришедшего сообщения. |
|||
|
||||
| amsoft |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 3 Всего: 4 |
alf138,
на мой взгляд проще передовать не готовый текст "буква ... встречается ... раз", а передовать только данный о кол-ве вхождений каждой буквы, и затем уже на конечном компе разбирать полученную строку. Можно сделать так: 1. Заполняешь массив MyArray (как писал выше) 2. Преобразовываешь его в строку:
PS Chr(9) - знак табуляции, мы его используем для разделения значений в строке 3. Отправляешь полученную строку При приеме данной строки на другом компе разбираешь ее: 4. Пишем небольшую функцию:
PS Данная функция позволяет искать подстроку №PosNum, в строке RecordString (подстроки разделяются разделителем Divider) 5. Заполняем ListBox:
--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
||||||
|
|||||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Вот что у меня получилось, компиляция проходит но при отправке пишет List index out of bounds(9).
procedure CharCount(S: string); var MyArray: array [0..31] of integer; X,Y: integer; begin for X := 1 to Length(MyArray) do MyArray[X-1] := 0; for X := 1 to Length(S) do begin Y := Ord(S[X]); if Y in [192..223] then MyArray[Y-192] := MyArray[Y-192] + 1; if Y in [224..255] then MyArray[Y-224] := MyArray[Y-224] + 1; end; ListBox1.Clear; S:=''; for X:=1 to Length(MyArray) do S:= S+ intToStr(MyArray[X-1] )+ Chr(9); ServerSocket1.Socket.Connections[i].SendText(S); Извените что не в коде, пишу с телефона. |
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 3 Всего: 4 |
Уверен, что ошибка именно в этом куске кода?
Приведи полный текст кода, выполняемый при отправке PS Убери строку ListBox1.Clear - данный компонент нужен при разборе строки на стороне клиента На будущее - внизу есть кнопка для создания новой темы --------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Пдозреваю что всетаки ошибка на стороне сервера потому что запускал клиента, и отправлял сообщения на сервер мой"города" и мне приходит на клиента Буква А встречается т раз. На клиенте написанно
сама процедура и вывод S:=Socket.ReceiveText; X:=1 while GetRecordItem(S,X,Chr(9)) <>do begin ListBox1.Item.Add(Все что писал добавлять); Inc(x); end; Все компиляцию проходит. Но выводит ошибку... Подскажи что сделал не так ? |
|||
|
||||
| amsoft |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 201 Регистрация: 17.10.2009 Где: KZ, Astana Репутация: 3 Всего: 4 |
Приведи полный текст кода, выполняемый при отправке
--------------------
"Кто бы ты ни был - не думай о себе слишком"Дельфин |
|||
|
||||
| alf138 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 161 Регистрация: 15.11.2009 Репутация: нет Всего: нет |
Извените, все получилось. Ошибку допустил. Большое спасибо "amsoft". Во второй раз помогаешь, спасибо.
|
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |