Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Вниз

Массив и строки.   Найти похожие ветки 

 
chelovek   (2005-05-21 08:55) [0]

Как строку передать в массив?
Например:

var
MyPeremArray: array [0..31] of Char;
MyPeremStr: String[32];


 
begin...end ©   (2005-05-21 08:59) [1]

В данном случае можно так:

Move(MyPeremStr[1], MyPeremArray, 32)


 
chelovek   (2005-05-21 09:04) [2]

begin...end ©   (21.05.05 08:59) [1]
Спасибо.


 
Defunct ©   (2005-05-21 09:45) [3]

строка это уже массив Char.

MyPeremStr[i] - i-й чар строки.


 
petya-kurochkin ©   (2005-05-21 09:56) [4]

Кстати, есть вариант цикла:
for i=1 to 31 do MyPeremStr[i]:=MyPeremArray[1];


 
chelovek   (2005-05-21 10:07) [5]

petya-kurochkin ©   (21.05.05 9:56) [4]

вариант с ошибками :)

тогда уж MyPeremStr:=MyPeremArray;
хотя я и не об этом спрашивал.


 
Defunct ©   (2005-05-21 10:10) [6]

> chelovek

Скажите, а для чего понадобилось более универсальный массив чар ака String переводить в менее универсальный - array[0..31] of char. Неужели так важно нумеровать с нуля?


 
chelovek   (2005-05-21 10:14) [7]

Defunct ©   (21.05.05 10:10) [6]

Для записи в файл.


 
Defunct ©   (2005-05-21 10:21) [8]

ну так imho String лучше подходит для записи в файл.

можно так:
S: String[32]
// Запись
BlockWrite(F, S, SizeOf(S) );

// Чтение
BlockRead( F, S, SizeOf(S) );


а можно и даже так (не сохраняя лишних символов):
S : String;
I : Integer;

// Запись
I := Length(S);
BlockWrite( F, I, SizeOf(i) );  // Сохраняем кол-во символов
BlockWrite( F, S[1], i);        // Сохраняем строку в файл

// Чтение
BlockRead( F, I, SizeOf(i) );   // Читаем сохраненную длину
SetLength( S, I);               // Меняем длину строки
BlockRead( F, S[1], i);         // Читаем строку из файла


 
Defunct ©   (2005-05-21 10:24) [9]

Для коротких строк:

S : ShortString;

// Запись

BlockWrite( F, S[0], Length(S)+1);

// Чтение
BlockRead(F, S[0], 1);
BlockRead(F, S[1], Byte(S[0]) );


 
chelovek   (2005-05-21 10:35) [10]

Defunct ©   (21.05.05 10:24) [8]
Defunct ©   (21.05.05 10:24) [9]

В принципе согласен.
Но дело в том, что есть некая сложная структура типа

type
MyRecord = record
           name: String[32];
           date: tDateTime;
           ................
           end;


Вот если в таком виде сохранять, то сохраняется строка в виде
[длина строки], [строка],[date],[....] и так далее. В файле с которым мне необходимо работать (файл создает не мое приложение) нет поля [длина строки]. У меня получилось читать и писать в этот файл только с таким типом:

type
MyRecord = record
           name: array [0..31] of Char;
           date: tDateTime;
           ................
           end;

Вот собственно и все. Нумерация с 0 по привичке, что бы не заморачиваться с началом отсчета где с 0 где с 1.


 
Defunct ©   (2005-05-21 10:56) [11]

> файл создает не мое приложение

Тогда не вопрос.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.013 c
1-1116514026
Oleg_
2005-05-19 18:47
2005.06.06
структуры в safearray реально?


14-1116184996
Ajax
2005-05-15 23:23
2005.06.06
Перегон авто из Европы


14-1116630531
Lobs
2005-05-21 03:08
2005.06.06
установrf компонент на delphi 8


3-1114500228
Max Zyuzin
2005-04-26 11:23
2005.06.06
Отображение строк в DBGrdi


14-1116512421
zamik
2005-05-19 18:20
2005.06.06
Запуск программы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский