Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> WideString определённого размера, Как сделать WideString[xx] 
V
    Опции темы
AXS
Дата 4.5.2014, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 26.9.2008
Где: РК

Репутация: нет
Всего: -1



Корень проблемы в том, что Socket.SendBuf() не желает отправлять/принимать записи (record) содержащие параметры типа string, ибо обычная строка это просто указатель на строку (? не уверен так ли я понял компилятор, но что-то вроде того).
То есть:
Код

type 
  TRecL = record
    s1: string;
    s2: string;
  end;

  TRecS = record
    s1: string[255];
    s2: string[255];
  end;

var
  RecL: TRecL;
  RecS: TRecS;

//. . .

  Socket.SendBuf(RecL, SizeOf(RecL)); // Не взлетит
  Socket.SendBuf(RecS, SizeOf(RecS)); // Взлетит


Но это не решает проблему, так как я работаю со специфичными символами (нид юникод). А решение выше имеет такой побочный эффект:

Код

  RecL.s1:= 'aұ⌘e';  
  RecL.s2:= 'cіздің';

  // В выводе и отладчике вижу RecL = ((s1:'aұ⌘e'), (s2:'cіздің'))

  RecS.s1:= RecL.s1;
  RecS.s2:= RecL.s2;

  // В выводе и отладчике вижу RecS = ((s1 : 'a??e'), (s2 : 'cізді?'))  


Пишу в XE5, где строки по умолчанию в юникоде, но как видно string[xx] превращается в анси.

Как это можно побороть? Существует ли что-то вроде widestring[xx]?
--------------------
<><><> AXS - Live Organizer v1.0  <><><> 0_o
PM MAIL WWW ICQ Skype GTalk   Вверх
Illusion Dolphin
Дата 4.5.2014, 19:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1198
Регистрация: 3.5.2003

Репутация: 36
Всего: 63



Код

  TRecX = record
    s1: array[1..255] of WideChar;
    s2: array[1..255] of WideChar;
  end;

Плюс надо хранить длинну или нулём оканчивать строку. 


--------------------
В мире всего две бесконечности: вселенная и человеческая глупость... На счёт вселенной я не уверен.
Шифрование и организация фотографий - Photo Database 4.5
PM MAIL WWW ICQ   Вверх
AXS
Дата 5.5.2014, 17:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 26.9.2008
Где: РК

Репутация: нет
Всего: -1



Цитата(Illusion Dolphin @ 4.5.2014,  19:06)
Код

  TRecX = record
    s1: array[1..255] of WideChar;
    s2: array[1..255] of WideChar;
  end;

Плюс надо хранить длинну или нулём оканчивать строку.

Строки вносить побайтово в цикле или есть какая-то функция?
--------------------
<><><> AXS - Live Organizer v1.0  <><><> 0_o
PM MAIL WWW ICQ Skype GTalk   Вверх
CynicRus
Дата 5.5.2014, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 248
Регистрация: 31.5.2012

Репутация: нет
Всего: 5



Ну если у тебя именно байты, то
Код

Функция Chr ( X: Byte ): Char; 

PM MAIL   Вверх
AXS
Дата 6.5.2014, 07:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 26.9.2008
Где: РК

Репутация: нет
Всего: -1



Нет, меня интересует как правильно перенести строки из записи со строками в запись с массивами. То есть из:

Код

  TRecL = record
    s1: string;
    s2: string;
  end;


в

Код

  TRecX = record
    s1: array[1..255] of WideChar;
    s2: array[1..255] of WideChar;
  end;


StrPCopy не подходит
--------------------
<><><> AXS - Live Organizer v1.0  <><><> 0_o
PM MAIL WWW ICQ Skype GTalk   Вверх
bems
Дата 7.5.2014, 03:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Move



--------------------
Обижено школьников: 8
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0724 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.