Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2009, 22:18   #1
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию Перекодировать текст в ANCII код

Задача:
Есть строка вида - www.programmersforum.ru;unicode;password
ее нужно перекодировать в ANCII код, так что бы эта строка могла заново перекодироваться в простой человеческий язык, стоит учесть что возможно пользователь будет использовать цифры и русские буквы.

Последний раз редактировалось unicode; 11.05.2009 в 22:29.
unicode вне форума Ответить с цитированием
Старый 11.05.2009, 22:30   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вы имели в виду ANSI или досовскую кодировку(название не помню)?
а то вашего типа кодировки я чтото не нашел нигде
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.05.2009, 22:48   #3
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию

Пепел Феникса, вы верно заметили, я немного ошибся, нужно в ANSI
unicode вне форума Ответить с цитированием
Старый 11.05.2009, 23:20   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

стандартный хелп Дельфи
Цитата:
Converts a string of Unicode characters into a UTF-8 string.

Unit

System

Category

character set conversions

Код:
function UnicodeToUtf8(Dest: PChar; MaxDestBytes: Cardinal; Source: PWideChar; SourceChars: Cardinal): Cardinal; overload;
function UnicodeToUtf8(Dest: PChar; Source: PWideChar; MaxBytes: Integer): Integer;overload; deprecated;
Description

Call UnicodeToUtf8 to convert a Unicode string to a null-terminated sequence of UTF-8 characters.

Dest receives the resulting null-terminated array of UTF-8 characters.

MaxDestBytes or MaxBytes indicates the number of bytes available in the buffer specified by Dest, not counting the byte for the null terminator.

Source is an array of Unicode characters.

SourceChars is the number of characters in Source. If SourceChars is not specified, Source must be null-terminated.

UnicodeToUtf8 returns the number of bytes written to Dest.
а из PChar в стринг перевести не трудно
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.05.2009, 23:25   #5
Квэнди
Старожил
 
Аватар для Квэнди
 
Регистрация: 13.12.2006
Сообщений: 3,859
По умолчанию

Не помню с какой версии(по-мойму только с последней) тип string и ansistring являются скрытыми классами, в которых есть методы перекодирования строк.
ICQ не для вопросов, а для предложений. Для вопросов используйте форум
IRC канал клуба программистов|Мои статьи
Квэнди вне форума Ответить с цитированием
Старый 11.05.2009, 23:45   #6
unicode
Форумчанин
 
Аватар для unicode
 
Регистрация: 16.04.2009
Сообщений: 162
По умолчанию

вот код:
Код:
 add := Edit1.Text + ';' + Edit2.Text + ';' + Edit6.Text;
 addfinal := UnicodeToUtf8(add);
 Memo1.Lines.Add(addfinal);
в строке
Код:
addfinal := UnicodeToUtf8(add);
выдает ошибку
Цитата:
Main.pas(77): There is no overloaded version of 'UnicodeToUtf8' that can be called with these arguments
что делать, подскажите.
unicode вне форума Ответить с цитированием
Старый 12.05.2009, 00:03   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а вы параметры посмотрели?

вот готовая функа на основе вышеизложенных
Код:
function UniToUTF8(Sourse:WideChar):string;
var s:string;
begin
 SetLength(s,length(Sourse));
 UnicodeToUtf8(PChar(s),@Sourse,length(Sourse))
end;
если честно не проверял, писал прямо тут
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 12.05.2009, 13:16   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Есть строка вида
Может имеется ввиду URL-кодировка?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Код игры на Паскале и на Делфи сильно отличается? Как переписать код с Паскаля в Делфи? Mclaren Помощь студентам 2 27.04.2009 22:37
Как узнать какой текст выделен в текст поле mogul82 JavaScript, Ajax 2 02.11.2008 16:32
Текст Sanek_ntsk Паскаль, Turbo Pascal, PascalABC.NET 3 10.03.2008 15:23
Текст [Smarik] Паскаль, Turbo Pascal, PascalABC.NET 6 19.02.2008 18:26