Помощь - Поиск - Пользователи - Календарь
Полная версия: считывание с файла!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
arhimag
Помогите найти ошибку, почему в конце стрелочки???
Код
program MapEdit;
uses vesa256, vesatype, crt;
const
edit = 'map.txt';
var           driver, mode, x, y, i,j,a : integer;
              map: array [1..100,1..100] of char;
              karta:text;
              probel:string;
              tekstura: char;

procedure readng(level: string);
var i, j, n, m : integer;
begin
     assign(karta,level);
     reset(karta);
     For i:=  1 to 100 do for j:= 1 to 100 do  begin
     if (j = 1) and (i<>1) then begin
     readln(karta,tekstura);
     map[j,i]:=tekstura;
     end
     else
     begin
     read(karta, tekstura);
     map[j,i]:=tekstura;
     end;
     end;
     close(karta);
end;

begin
     readng(edit);
     for i:= 1 to 100 do for j:= 1 to 100 do if j=1 then begin writeln(map[j,i]); readln; end else
     write(map[j,i]);
     readln;
end.
volvo
Вообще-то при работе с файлами желательно использовать While {Seek}Eof(f) чтобы прочитать столько значений, сколько есть в файле...

Ну, а во-вторых, ты просто неправильно читаешь данные из файла... Вот так - никаких "стрелочек" не будет:
procedure readng(level: string);
var i, j, n, m : integer;
begin
assign(karta,level);
reset(karta);
For i:= 1 to 100 do
for j:= 1 to 100 do
begin
if (j=100) then begin
readln(karta,tekstura);
map[j,i]:=tekstura;
end
else begin
read(karta, tekstura);
map[j,i]:=tekstura;
end;
end;
close(karta);
end;
K Y S K A
Volvo'чка не мог ли ты выложить весь текст программы, а то у меня все равно в TP7 стрелочки появляются sad.gif
Если кто стесьняется вставлять свой кодд, то не надо этого делать, мне просто надо сделать похожую программку, и тоже какието стрелочки вылезают!!! Помогите!!! Пожалуйста!!!!!!!
volvo
Цитата
мне просто надо сделать похожую программку, и тоже какието стрелочки вылезают!!!
Приведи свой код - универсального рецепта нету, в каждом случае делается по-разному... Надо смотреть, что у тебя за проблема, и только тогда ее можно будет решить...
K Y S K A
Volvo ты не мог ли мне просто предьявить ту програмку, просто эта у меня только в тренировочных вариантах с форума и алгоритмах!
volvo
Программа - та же самая, я только поменял процедуру:
program MapEdit;
uses
vesa256, vesatype, crt;
const
edit = 'map.txt';
var
driver, mode, x, y, i,j,a : integer;
map: array [1..100, 1..100] of char;
karta:text;
probel:string;
tekstura: char;

procedure readng(level: string);
var i, j, n, m : integer;
begin
assign(karta,level);
reset(karta);
For i:= 1 to 100 do
for j:= 1 to 100 do
begin
if (j=100) then begin
readln(karta,tekstura);
map[j,i]:=tekstura;
end
else begin
read(karta, tekstura);
map[j,i]:=tekstura;
end;
end;
close(karta);
end;

begin
readng(edit);
for i:= 1 to 100 do
for j:= 1 to 100 do
if j=1 then begin
writeln(map[j,i]); readln;
end
else write(map[j,i]);
readln;
end.
K Y S K A
ну я без весы тестирую, но ты до конца её до кручивал???
там точно стрелочки появляются!
volvo
K Y S K A,
если я сказал, что тестировал, значит - тестировал. Не тебе меня учить проверять правильность программы !! mad.gif
Студентик13
Стрелочки появляются ради интереса проверил
volvo
Правда? Ну, тогда присоедините ОБА скриншоты с рабочего стола, где видны эти стрелочки... Я хочу САМ увидеть их... В особенности это относится к тебе, Студентик13... Ты б свои проблемы решал...

Свой скрин присоединю через минуту...
Студентик13
Удаляюсь решать свои проблемищи mega_chok.gif mega_chok.gif
K Y S K A
вот
volvo
Ну, а у меня - вот:
Студентик13
У меня совсем по другому mad.gif пора комп выкидывать ато от перепрошивок черт знай что dry.gif
FIAT
Вот корректное чтение:
program MapEdit;
const
edit = 'map.txt';
var
driver, mode, x, y, i,j,a : integer;
map: array [1..100, 1..100] of char;
karta:text;
probel:string;
tekstura: char;

procedure readng(level: string);
var i, j, n, m : integer;
begin
assign(karta,level);
reset(karta);
For i:=1 to 100 do begin

for j:= 1 to 99 do begin
read(karta,tekstura);
map[i, j]:=tekstura;
end;
readln(karta)
end;
close(karta);
end;

begin
readng(edit);
for i:= 1 to 100 do begin
for j:= 1 to 99 do
write(map[i, j]);
writeln;
end;
end.

Просто в файле 100 строк по 99 символов, а делается попытка читать 100 по 100 символов. Отсюда и проблема...
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.