Помощь - Поиск - Пользователи - Календарь
Полная версия: массив формируемый из текстового файла
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
torok
это таже задача, которую я описывал ниже, но теперь нужно считывать значения из текстового файла. Условие задачи: ввести в массив данные из файла и с помощью процедуры преобразовать массив следующим образом: заменить элементы нулями, если они попадают в заданный интервал (x,y).
Я провозился несколько часов, но что-то видимо опять не понимаю.. Программа заменяет нулями все элементы. Посмотрите пожалуйста.
Код

program massivf;
uses crt;
const n=3;
var f:text;
x,y:longint;
ch,i: char;
a,b,c,z: array [char] of longint;
procedure p (var z:longint);
begin
z:=0;
end;
begin
clrscr;
writeln('введите границы диапазона');
read (x,y);
assign(f,'mas.txt');
reset (f);
while not eof(f) do begin
read(f,ch);
if (ord(ch)>x) and (ord(ch)<y) then p(a[ch]) else a[ch]:=ord(a[ch]);
writeln(a[ch]);
end;
close(f);
end.

кстати, это программа (если она вообще должна работать wacko.gif ) не может работать с двузначными и более числами, т.к. читает посимвольно. А хотелось бы чтобы читала любые, но это вообще непосильная пока для меня задача. Хоть бы так заработала smile.gif I need help.
volvo
Вот так попробуй:
program massivf;
uses crt;
const n=20;

var
f: text;
x, y:longint;

i: integer;
a: array[1 .. n] of longint;

procedure p (var z:longint);
begin
z:=0;
end;

begin
clrscr;
writeln('введите границы диапазона');
readln(x, y);

assign(f,'mas.txt');
reset (f);

i := 0;
while not eof(f) do begin
inc(i);
read(f,a[i]);
if (a[i] > x) and (a[i] < y) then p(a[i]);
writeln(a[i]);
end;

close(f);
end.


тестировалось на файле:
torok
Спасибо, всё работает!
А почему я буду разбираться завтра smile.gif
Я понимаю так, что мы считываем из текстового файла сразу целочисленные значения.. я думал, что всё, что там находится является символьным типом и поэт. нужно, руководствуясь ascii, "переводить" c помощью ord в longint.
Этот момент мне не понять и требует изучения. Буду заниматься дальше.
Интересно, а если разделять значения запятыми, то без ord() не обойтись?
volvo
Цитата
Интересно, а если разделять значения запятыми, то без ord() не обойтись?

blum.gif Ищи по форуму, я выкладывал код, который работает независимо от того, как разделены значения в файле...

Хотя ... Я сам тебе дам ссылку...
Вот здесь: Помогите с запятыми
torok
Спасибки!
Буду разбираться! smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.