![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| 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); Извените что не в коде, пишу с телефона. |
|||
|
||||
![]()
|
| Правила форума "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. |