![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.05.2013
Сообщений: 51
|
![]()
Есть задача реализовать функцию в программе в принципе основную какую делает пунтосвитчер
Раскладки всего 2 - русская и английская например есть у меня строка 'ghbdtn' надо преобразовать в 'привет' и наоборот строку 'руддщ' преобразовать в 'hello' на ум пришло создать константу - двумерный [1..66, 0..1] массив и перебирать посимвольно строку. может это можно сделать как то побайтово? а может есть еще и более быстрый способ? ps строка unicode |
![]() |
![]() |
![]() |
#2 | |||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
Цитата:
Но я бы не парился. Неужели у тебя строки по гигабайту, что отказываешся от простого цикла?
I'm learning to live...
|
|||
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.05.2013
Сообщений: 51
|
![]()
побайтово имелось ввиду функции ord chr.
да, Вы правы строки конечно не более кБ |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
Я думаю, гораздо лучший во всех отношениях вариант - завести 2 массива констант длиной по 256 символов (для однобайтовых кодировок), и выбирать символ по индексу без поиска. Примерно так:
const en2ru : array[0..255]of char = (#0,#1,#2... var MyChar, RecodedChar : char; ... RecodedChar := en2ru[byte(MyChar)]; |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 07.05.2013
Сообщений: 51
|
![]()
сделал вот так
Код:
|
![]() |
![]() |
![]() |
#6 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
pos() тут абсолютно как не пришей рукав пятому зайцу.
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 07.05.2013
Сообщений: 51
|
![]()
Да я и не спорю что он быстрый. Если бы знал как, не спрашивал совета. Мне на ум алгоритма не приходит, поэтому вот такая логика, а что c Pos() и с каким(и)?
|
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 07.05.2013
Сообщений: 51
|
![]() Цитата:
![]() |
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Переход с одной строки на другую в DBF сканировании | danxiel | Помощь студентам | 2 | 04.09.2012 14:15 |
MS SQL SERVER 2005 копирование таблицы из ОДНОЙ БД В другую или перенести все строки из одной таблицы в другую | reihtmonbern | БД в Delphi | 4 | 17.07.2012 23:25 |
Перенос данных из строки одной таблицы БД в другую БД | Optigood | БД в Delphi | 15 | 12.05.2010 17:07 |
ActionScript копировать часть строки в другую | пауэрлифтинг | JavaScript, Ajax | 0 | 15.12.2009 21:34 |
функция: копирование части строки в другую строку | plasticman | Microsoft Office Excel | 1 | 18.03.2009 15:30 |