Форум: "Основная";
Текущий архив: 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