Другие языки программирования и технологии

Pascal, чтение из файла

Нужно прочитать целое число. Написал, кое-как. Читает неправильно. В файле дано одно число (12) program asd; var fr : file of integer; num: integer; begin assign(fr, '/home/administrator/Desktop/input.txt'); reset(fr); read(fr, num); write(num); close(fr); end. Ткните носом в ошибку. Кстати, при смене типа с integer на byte, результат меняется. Что я делаю не так? Прошу не пинаться, с паскалем не знаком.
Если в файл вы записали блокнотом символы 12, то и объявляйте свой файл fr как текстовый, а не как двоичный.

var fr : Textfile; {для Delphi}

или

var fr : Text; {для турбо паскаля}

Необходимое преобразование типов пакаль выполнит сам.
ОА
Олжас Абдугалиев
59 614
Лучший ответ
Вставка текста из файла в поле Memo - Memo1.Lines.LoadFromFile('c:\1.txt'); Файл должен быть, иначе ошибка.
Во первых integer - это переменная для работы с цифрами, а делфи думает, что раз файл текстовый то так незя и выдает ошибку. Возьми String и преобразуй (после того как считаешь) эту переменную в integer например с помощью функции преобразования. Тогда, да всё будет правильно, а твой код я не очень понимаю.
Даю справку по переменным - может поможет ?

Переменные содержащие целые числа, не имеющие дробной части.
Тип переменной Значение переменной Размер переменной Примечание
Shortint –128..127 8-бит со знаком
Smallint –32768..32767 16-бит со знаком
Integer –2147483648.. 2147483647 32-бит со знаком Рекомендовано к использованию
Longint –2147483648.. 2147483647 32-бит со знаком
Int64 –2^63..2^63–1 64-бит со знаком
Byte 0..255 8-бит без знака
Word 0..65535 16-бит без знака
Longword 0..4294967295 32-бит без знака
Cardinal 0..4294967295 32-бит без знака
Переменные содержащие целые числа, имеющие дробную часть.
Тип Порог Максимальное значение Кол-во цифр в значении Объем, байт
Real 2,9*10^-39 1,7*10^38 11-12 6
Single 1,5*10^-45 3,4*10^38 7-8 4
Double 5,0*10^-324 1,7*10^308 15-16 8
Extended 3,4*10^-4932 1,1*10^4932 19-20 10
Comp 1,0 9,2*10^18 19-20 8
Currency 0,0001 9,2*10^14 19-20 8
Символьный тип, нужен для преобразования цифр в буквы и обратно в кодировке ANSI.
Тип Обьём, байт
Char 1
Примечание.
Char может содержать только 255 возможных значений символов, что соответствует стандартной кодировке ANSI.
Byte численная переменная.
Функция Ord(C) возвращает значение порядкового номера символа С в таблице кодировки. Возвращаемое значение имеет тип Byte.
Обратное преобразование осуществляется функцией Chr(B).
Пример такого преобразования при нажатии на кнопку Button1:
procedure TForm1.Button1Click(Sender: TObject);
Var C:Char;B:Byte; // символьная и численная переменная
begin
C:='A'; // в переменную С заносим символ А
B:=Ord(C); // получаем значение символа А равное 65
B:=100; // В переменную В заносим 100
C:=Chr(B); // получаем символ d
end;
Строковый тип, работа с текстом, цифрами и т. д.
String, размер ограничен только памятью.
ShortString, размер ограничен 255 символами.
Булевый тип.
Boolean - имеет только два значения true (истинно) или false (ложно) .
Pavel Aganin
Pavel Aganin
2 592
попробуйте записать содержимое файла в строковую переменную.
с паскалем не знаком.