Главная страница
    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.014 c
1-1116495457
NOVOURALSK
2005-05-19 13:37
2005.06.06
Help please


1-1116644188
Roman_Bar
2005-05-21 06:56
2005.06.06
Ссылка с одной кнопке на другую


3-1114444902
Jungle Forever!
2005-04-25 20:01
2005.06.06
DBGrid и unixtime


1-1116912661
tomas
2005-05-24 09:31
2005.06.06
Использование TcxDBLookupComboBox (Express DBEditors 4)


14-1116592324
pavel_guzhanov
2005-05-20 16:32
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский