Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

Отобразить строку на определённую структуру

Delphi , Синтаксис , Записи и Множества

Отобразить строку на определённую структуру

Новый фильм от создателей Матрицы : Romeo Must Die
Генеральный спонсор : Microsoft


type
  TEmployee = record 
    cNo: array [0..3] of Char; 
    cName: array [0..7] of Char; 
  end; 
  PEmployee = ^TEmployee; 

procedure ParseData; 
const 
  sData = '0001Mosquito'; 
var 
  sNo, sName: string; 
begin 
  with PEmployee(Pointer((@sData)^))^ do  
  begin 
    sNo   := cNo;      // sNo = '0001' 
    sName := cName;    // sName = 'Mosquito' 
  end 
end;

Here is the translation of the text into Russian:

Данное кодирование написано на языке Pascal и предназначено для парсинга строки в два отдельных строка sNo и sName, основываясь на предопределенной структуре. Структура определена типом TEmployee, который состоит из массивов cNo и cName символов.

Вот, что код делает:

  1. Он определяет рекордный тип TEmployee с двумя полями: cNo (массив из 4 символов) и cName (массив из 8 символов).
  2. Он определяет указательный тип PEmployee, который указывает на экземпляр TEmployee.
  3. Процедура ParseData определена, которая не принимает параметров.
  4. Внутри процедуры константная строка sData определена с значением '0001Mosquito'.
  5. Два локальных переменных sNo и sName объявлены как строки.
  6. Код использует указатель на анонимный рекорд (созданный путем кастинга адреса sData в PEmployee) и присваивает его поля sNo и sName.

Однако, есть проблема в данном коде. Присваивание sNo := cNo; не будет работать так, как ожидалось, потому что cNo - это массив символов, а sNo объявлен как строка. Аналогично, sName := cName; также не будет работать.

Чтобы исправить эту проблему, вы можете использовать функции строк, такие как Copy или Move, чтобы извлечь желаемые строки из исходной строки:

procedure ParseData;
const
  sData = '0001Mosquito';
var
  sNo, sName: string;
begin
  sNo := Copy(sData, 1, 4); // извлекать первые 4 символа как sNo
  sName := Copy(sData, 5, 8); // извлекать следующие 8 символов как sName
end;

В этом исправленном коде:

  • Copy(sData, 1, 4) извлекает первые 4 символа из sData и присваивает их sNo.
  • Copy(sData, 5, 8) извлекает следующие 8 символов из sData и присваивает их sName.

Таким образом, вы можете правильно извлечь желаемые строки из исходной строки на основе предопределенной структуры.

В статье описывается процесс форматирования строки в соответствии с определенной структурой, используя пример на языке Pascal.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Записи и Множества ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 03:21:31/0.0069639682769775/2