![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проверка типа данных [D7, XP]
8shar © (2009-10-06 19:35:00)Доброго времени суток. Хочу спросить, можно ли в Delphi проверить тип данных. Например пользователь ввел в Edit строку а мне нужно узнать принадлежит ли это строка к типу real integer byte или string. Как это сделать?
Leonid Troyanovsky (2009-10-08 17:51:00) [1]
> 8shar © (08.10.09 15:46) [4]
> месте стопарнеться. Как мне обойти эту ошибку?
Можно записать в первую запись сигнатуру,
и проверять по ней.
--
Regards, LVT.
Amoeba (2009-10-08 16:23:00) [2]
8shar © (08.10.09 15:46) [4]
> как мне проверить то ли там содержимое или нет? Является
> ли внутренности файла переменными заданного типа.
Никак, кроме как попытавшись прочесть его как типизированный файл.
Franzy (2009-10-08 16:22:00) [3]Предпочинатаю процедуру val. Она возвращает код ошибки, что позволяет узнать причину, по которой не удалось преобразовать строку к числу.
Медвежонок Пятачок (2009-10-08 16:04:00) [4]> TryStrTo...
Точно!
Не очень.
var v : int64;
begin
if not TryStrToInt64('9999999999999999999',v) then ShowMessage('Упс!');
8shar (2009-10-08 15:46:00) [5]
> TryStrTo...
Точно!
Но есть вопрос еще, если я описал свои тип например как:
type
TMyType = record
a : integer;
b : array[1..10] of bool;
c : string[21];
end;
и читаю его из файла:
var
fil: file of TMyType;
per : TMyType;
begin
AssignFile(fil,'c:\data.dat');
Reset(fil);
While not (eof(fil))do
begin
read(fil,per);
//что то делаю с per
end;
end;
то как мне проверить то ли там содержимое или нет? Является ли внутренности файла переменными заданного типа.
Можно же mp3 файл в дат dat переименовать и прога на етом месте стопарнеться. Как мне обойти эту ошибку?
Anatoly Podgoretsky (2009-10-06 19:52:00) [6]> 8shar (06.10.2009 19:35:00) [0]
Можешь не проверять, она всегда принадлежит к типу string
Игорь Шевченко (2009-10-06 19:51:00) [7]TryStrTo...
Поросенок ВинниПух (2009-10-06 19:51:00) [8]можно не проверять.
там всегда строка