| imho.ws |
![]() |
|
|
|
# 1 |
|
Guest
Сообщения: n/a
|
Спасибо всем кто помго с предыдущим вопросом, но возник ноый. У меня никак не получилось считать из файла какие-то слова отдельно. Содержание файла D:\input.dat :
yes no yes no Вот текст проги который я пытался : program num; var a,b:string;f:Text; begin assign(f,'d:\input.dat'); reset(f); read(f,a); read(f,b); write(a,' - ',b); read(a);{} end. выводит: yes no yes no - т.е. если тип string, то она считывает по строкам. А если написать a,b : char, то она считывает по символам, т.е. y - e Помогите пожалуйста. Как сделать, чтобы она считывала по словам. Т.е. она должна вывести yes - no.
Последний раз редактировалось GreatLion; 24.11.2005 в 09:16. Причина: Новая проблема |
|
|
# 3 |
|
Guest
Сообщения: n/a
|
Текст проги:
program num; var a:integer;f:file of integer; begin assign(f,'d:\input.dat'); reset(f); read(f,a); write(a); read(a);{} end. Выводит: 13874 Содержание d:\input.dat: 26 Текстовый редактор - Turbo Pascal 7.0 Последний раз редактировалось GreatLion; 23.11.2005 в 10:46. |
|
|
# 4 |
|
Junior Member
Регистрация: 30.03.2003
Адрес: СПб
Сообщения: 162
![]() ![]() ![]() |
Попробуй объявить файловую переменную так:
Код:
var f : text; UPD: По идее так должно работать: Код:
program num; var a,code:integer; f:Text; buf:string; begin assign(f,'d:\input.dat'); reset(f); readln(f,s); val(s,a,code); end.
__________________
640Kbytes should be enough for everything! (c) Bill Gates, 1981. Все "спасибо" в репутацию
Последний раз редактировалось Al-x; 23.11.2005 в 10:56. |
|
|
|
|
# 6 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Всё элементарно: когды ты в текстовом редакторе пишешь 26, то у тебя образуется два символа с шестнадцатеричными кодами 32 и 36. Когда ты читаешь из файла, при этом объявляя его типизированым file of int, то эти два кода воспринимаются как слово (два байта, 36 - старший, 32 - младший) и оно читается в твою целую двубайтовую переменную a. Если ты переведешь шестнадцатеричное 3632 в десятичное, то получишь как раз 13874.
Решение - читать файл не как типизированный целый, а как текстовый, и преобразовывать считанную строку в целое. Al-x Чутка опередил |
|
|