Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 23.09.2014, 13:36
vikk vikk вне форума
Начинающий
 
Регистрация: 01.10.2010
Сообщения: 132
Репутация: 10
По умолчанию Как из WideString сделать String?

Всем добрый день! Подскажите, пожалуйста, есть ли какой-либо цивильный способ преобразовать широкую строку в обычную, точнее, положить информацию из WideString в string ? Спасибо!
ЗЫ: да, информация в широкой строке однозначно стринговая - только латиница-кириллица-цифры-стандартные символы, ничего двубайтового.

Последний раз редактировалось vikk, 23.09.2014 в 13:38.
Ответить с цитированием
  #2  
Старый 23.09.2014, 13:37
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

А в чем разница между этими строками?
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #3  
Старый 23.09.2014, 14:36
vikk vikk вне форума
Начинающий
 
Регистрация: 01.10.2010
Сообщения: 132
Репутация: 10
По умолчанию

Проблема, насколько я понимаю, в разнице места для каждого символа строки у этих типов данных. Мне нужно, чтоб информация(русское слово) из WideString корректно была помещена в String.
Ответить с цитированием
  #4  
Старый 23.09.2014, 15:20
vikk vikk вне форума
Начинающий
 
Регистрация: 01.10.2010
Сообщения: 132
Репутация: 10
По умолчанию

Вроде сработала WideCharToString(PWideChar(wss)). Нет у неё никаких подводных камней?
Ответить с цитированием
  #5  
Старый 23.09.2014, 15:23
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Формально есть, если там юникод и ты укажешь не ту локаль, то получишь на выходе хрень.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
  #6  
Старый 23.09.2014, 16:31
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Обычно присваивание должно работать, если правильно задана локаль.

Код:
var
  S:AnsiString;
  W:WideString;

S:=W;
Ответить с цитированием
  #7  
Старый 24.09.2014, 13:06
vikk vikk вне форума
Начинающий
 
Регистрация: 01.10.2010
Сообщения: 132
Репутация: 10
По умолчанию

Большое спасибо! Только переведите мне, пожалуйста, на русский язык выражение задать/указать локаль, ибо "я не волшебник, я ещё только учусь (с)"

Смущает, что в других местах программы присваивание стринговой переменной широкостринговой вроде не лажает, а при попытке поместить широкостринговую в TStringList программа даже не падает, а просто обрывается без никаких сообщений и вновь запустить её(или любую другую) из-под среды(у меня семерка) не получается никак
Ответить с цитированием
  #8  
Старый 24.09.2014, 13:29
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Цитата:
Сообщение от vikk
Большое спасибо! Только переведите мне, пожалуйста, на русский язык выражение задать/указать локаль

https://ru.wikipedia.org/wiki/%D0%9B...B0%D0%BB%D1%8C
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
vikk (25.09.2014)
  #9  
Старый 24.09.2014, 18:26
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Цитата:
Сообщение от vikk
WideString в string ?
в юникодных версиях String уже == WideString. а в ansi версиях AnsiString(WideString)
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #10  
Старый 25.09.2014, 13:33
vikk vikk вне форума
Начинающий
 
Регистрация: 01.10.2010
Сообщения: 132
Репутация: 10
По умолчанию

Вот уж - век живи, век учись: оказывается, "локаль" - это не разговорный сленг, типа "мамы", а вполне себе википедийный термин ))
Спасибо, господа!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 16:07.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter