Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
andrej77
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 16
#1

Выделение/определение символов из строки текста - Delphi

05.01.2013, 19:58. Просмотров 1350. Ответов 5
Метки нет (Все метки)

Подскажите пожалуйста, как выделить символы из текста, т.е. например у нас есть код "000111010" , мы знаем что 000 - означает пробел, 111 - букву "д", 010 - букву "а" , т.е. этот код надо перевести в " да" (ну соотв. когда у нас есть список символов в двоичном коде и сам длинный код) , как сделать так чтобы из строки (которая представлена в виде двоичного кода) выделялись уникальные части (которым мы присваиваем символьные значения) и при этом из кода они стирались если происходит замена ?

http://www.cyberforum.ru/delphi-beginners/thread1200219.html
Добавлено через 13 часов 16 минут
Подскажите хотя бы с чего начать, какие функции помогут ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.01.2013, 19:58
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Выделение/определение символов из строки текста (Delphi):

Даны три строки символов. Сформировать четвёртую строку по правилу: она должна состоять из последнего символа первой строки, трёх первых символов втор
Я не знаю как написать эти две программы 1.Даны три строки символов....

Найти во введенной строке текста некоторую последовательность символов и заменить её иной последовательностью символов
Найти во введенной строке текста некоторую последовательность символов и...

Выделение текста
Как сделать анализирование только выделенного текста (часть, подлежащая...

Выделение текста в SynEdit
Всем привет. Возникла такая ситуация : Нужно выделить текст с...(какое-либо...

Выделение текста в RichEdit
Доброго дня. Подскажите пожалуйста, как выделить нужным цветом определённое...

5
Lirrk
Заблокирован
05.01.2013, 20:39 #2
Вся проблема в том, что задание абсолютно непонятно. Что за код? В каком виде? Откуда и что вычлинять? То вы пишите что у вас текст, то бинарный файл...
Если текст, то подход один, если бинарник, то другой. Но по сути проще простого. Читайте про функции работы со строками. Да и маловато трёх разрядов для букв.
1
andrej77
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 16
06.01.2013, 01:56  [ТС] #3
Подробнее: изначальный код - из которого вычлинять - бинарный, т.е. строка состоящая из 0 и 1 , символы тоже представлены в бинарном виде

Из того что видел в интеренте, пока гуглил, пока предполагаю сделать так :

1) Нахожу номер символа с помощью ф-ции pos,
2) Копирую в новую мемо символы до, плюсую САМ символ , копирую символы после Т.Е. создаю НОВУЮ СТРОКУ
3) ЗАМЕНЯЮ СТАРУЮ СТРОКУ НА НОВУЮ
4) Повторяю цикл пока не заменятся все символы

скажите это наиболее эффективный вариант ?
0
Lirrk
Заблокирован
06.01.2013, 02:02 #4
Ну если строка. то и работайте как со строкой. Но проще это делать в потоке. Но сначала нужно составить кодовую таблицу. Как минимум 8 разрядов двоичного числа на символ. В принципе можно применить принцип телеграфного кода в 5 бит.
1
andrej77
0 / 0 / 0
Регистрация: 22.06.2012
Сообщений: 16
06.01.2013, 02:07  [ТС] #5
Цитата Сообщение от Lirrk Посмотреть сообщение
Вся проблема в том, что задание абсолютно непонятно. Что за код? В каком виде? Откуда и что вычлинять? То вы пишите что у вас текст, то бинарный файл...
Подробнее: изначальный код - из которого вычлинять - бинарный, т.е. строка состоящая из 0 и 1 , символы тоже представлены в бинарном виде , естественно символы - строки по 20 а то и по 100 символов , нулей и единиц, написал в первом сообщении трехразрядные - как пример, на деле они больше

Из того что видел в интеренте, пока гуглил, пока предполагаю сделать так :

1) Нахожу номер символа с помощью ф-ции pos,
2) Копирую в новую мемо символы до, плюсую САМ символ , копирую символы после Т.Е. создаю НОВУЮ СТРОКУ
3) ЗАМЕНЯЮ СТАРУЮ СТРОКУ НА НОВУЮ
4) Повторяю цикл пока не заменятся все символы

скажите это наиболее эффективный вариант ? Или подскажите лучший способ )
0
Lirrk
Заблокирован
07.01.2013, 15:07 #6
функция pos здесь не подойдёт. У вас сначала должна быть составлена таблица символов. А количество разрядов в коде символа должно быть фиксированым. Всё что нужно последовательно вычлинять из шифрованной строки подстроки, длиной равной длине кода, перводить эту строку в десятичное число и брать из таблицы символ по этому адресу. Вот и всё. Вылинять проще простого. Допустим в строке два зашифрованых символа А и Б
Примем что код 8-разрядный.
Таблица символов
А (1)- 00000001
Б (2)- 00000010

Тогда зашифрованная строка
0000000100000010

Берём цикл while, он будет получать код, а внутри цикл for - он будет формировать код из символов
После того как в в цикле for код сформируется, его нужно превратить в десятичное, и взять символ из таблицы. Этот символ занести в строку расшифровки, и перейти к формированию следующего кода. И так до конца строки.

Добавлено через 5 минут
Если проблема с считыванием... Со строкой работать как с массивом.
Строка - S
Тогда символ из строки - S[i]
Для формирования кода нужна подстрока. Скажем Cod
И ещё нужен счётчик символов в строке.
Ну здесь это очень долго объяснять.
0
07.01.2013, 15:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2013, 15:07
Привет! Вот еще темы с решениями:

Выделение текста, центрирование
Цель у меня такая: сделать кнопку, по нажатию которой выделяется весь текст...

Выделение текста в RichEdit
Вообщем есть 2 RichEdit, я их сравниваю между собой, если есть различия то в...

Выделение текста в RichEdit
Здравствуйте, подскажите, как сделать, чтобы после изменения стиля выделенного...

Построчное выделение текста в RichEdit
Доброго всем времени суток. Есть некая функция, которая построчно добавляет...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru