Форум программистов, компьютерный форум, киберфорум
Free Pascal
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
2 / 2 / 0
Регистрация: 06.07.2024
Сообщений: 50

Компилятор считывает число из файла в виде белиберды

04.08.2024, 21:54. Показов 2591. Ответов 9

Студворк — интернет-сервис помощи студентам
вот часть кода:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
  assign(f, s2);
  reset(f);
  readln(f, mode);
  if mode=1 then begin
  readln(f,lines);
  for i:=1 to lines do begin
  clrscr();
  readln(f,nam);
  writeln(nam);
  writeln('Press any key to continue');
  readkey();
  end;
  end;
1)файл существует.
2)сначала идет два числа, потом строки.
3)файл лежит в одной папке.

Предположения:
1)Неправильная кодировка файла.
2)Неправильный тип файловой переменной.

До какого-то момента у меня все работало: файл открывался и считывался, но сейчас пишет exitcode=106 (неправильный формат вводимых данных) при считывании числа переменной типа integer.
если считать это число переменной типа string и вывести на экран, то выведет это:
Изображения
 
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.08.2024, 21:54
Ответы с готовыми решениями:

Напишите программу, которая считывает из файла исходный текст программы на Python и подставляет номера строк (в виде ком
Помогите пожалуйста решить задачу Напишите программу, которая считывает из файла исходный текст программы на Python и подставляет...

Не считывает строки. Компилятор вылетает
Условие: Разработать функцию MeanDigits(const S:string):integer, определяющую среднее арифметическое цифр в строке S (дробную часть...

Написать программу которая считывает считывает текст из файла и записывает в другой слова состоящие не менее чем из 7 букв
Написать программу которая считывает считывает текст из файла и записывает в другой слова состоящие не менее чем из 7 букв Мне кажется...

9
2 / 2 / 0
Регистрация: 06.07.2024
Сообщений: 50
04.08.2024, 22:13  [ТС]
Нечаяйно создал сразу две темы и не заметил теперь думаю как удалить

Добавлено через 15 минут
Кстати инфо по компилятору: Оригинальный компилятор free pascal версии 3.2.2 с синим интерфейсом.
на скрине слева это ноль, он просто ввыводился тоже и не является частью выводимой считываемой переменной.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33184 / 21482 / 8231
Регистрация: 22.10.2011
Сообщений: 36,853
Записей в блоге: 12
05.08.2024, 00:05
Показывай полный код, а не огрызок без описания переменных. К тому же, желателен и сам файл, из которого пытаешься читать.
1
2 / 2 / 0
Регистрация: 06.07.2024
Сообщений: 50
05.08.2024, 10:47  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Показывай полный код, а не огрызок без описания переменных.
Ладно
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
uses
  crt;
 
 
var
  i, j, v, x, y,location: integer;
  f,f2: text;
  map: array [1..13] of array [1..30] of integer;
  MainMap: array[1..10] of array[1..10] of integer;
  z:char;
  nam:string;
 
  s2: String;
  lines,mode,globalX,globalY: integer;
  falseAnswer,trueAnswer,frase:string;
  code,answer,lastLocation:integer;
  shift:boolean;
 
 
 
procedure fileReader(s2: string);
 
begin
  assign(f, s2);
  reset(f);
  readln(f, mode);
  if mode=0 then begin
  for i:=1 to 13 do begin
  for j :=1 to 30 do begin
  read(f,v);
  if v=64 then begin
  y:=i;
  x:=j;
  end;
  map[i,j]:=v;
  end;
  readln(f);
  end;
  end
 
  else if mode=1 then begin
  readln(f,lines);
  for i:=1 to lines do begin
  clrscr();
  readln(f,nam);
  writeln(nam);
  writeln('Press any key to continue');
  readkey();
  end;
  end
 
  else if mode=2 then begin
 
  end;
 
 
 
 
 
  close(f);
end;
procedure opener(a, b: integer; s: String);
 
begin
 
  str(a,s2);
  nam:=s2+s;
  str(b,s2);
  nam:=nam+s2+'.txt';
  fileReader(nam);
end;
 
procedure save();
begin
assign(f2,'SaveDate.txt');
rewrite(f2);
writeln(f2,location);
writeln(f2,y);
writeln(f2,x);
close(f2);
end;
 
procedure move(der: integer);
 
begin
map[y,x]:=46;
  case der of
    1: begin
    if y-1=0 then begin location:=MainMap[globalY-1,globalX];
   y:=13;
   shift:=true;
   end;
    if y<>1 then z:=chr(map[y-1,x]);
    end;
    2: begin
    if y+1=14 then begin location:=MainMap[globalY+1,globalX];
   y:=1;
   shift:=true;
   end;
    if y<>13 then z:=chr(map[y+1,x]);
    end;
   3: begin
    if x-1=0 then begin location:=MainMap[globalY,globalX-1];
   x:=30;
   shift:=true;
   end;
    if x<>1 then z:=chr(map[y,x-1]);
    end;
    4: begin
    if y+1=31 then begin location:=MainMap[globalY,globalX+1];
   x:=1;
   shift:=true;
   end;
    if x<>30 then z:=chr(map[y,x+1]);
    end;
 
  end;
 
  case z of
  '.':begin
  if shift=false then begin
  if (der=1) and (map[y-1,x]<>35) and (y<>1) then y:=y-1
  else if (der=2) and (map[y+1,x]<>35) and (y<>13) then y:=y+1
  else if (der=3) and (map[y,x-1]<>35) and (x<>1) then x:=x-1
  else if (der=4) and (map[y,x+1]<>35) and (x<>30) then x:=x+1;
  end;
  end;
  '?':begin
  if (der=1) then opener(y-1,x,'text');
  if (der=2) then opener(y+1,x,'text');
  if (der=3) then opener(y,x-1,'text');
  if (der=4) then opener(y,x+1,'text');
  end;
 
  '=':begin
  if (der=1) then opener(y-1,x,'chest');
  if (der=2) then opener(y+1,x,'chest');
  if (der=3) then opener(y,x-1,'chest');
  if (der=4) then opener(y,x+1,'chest');
  end;
 
  end;
 
 
 
  map[y,x]:=64;
  shift:=false;
end;
procedure key(key: Char);
 
begin
  case key of
    'w': move(1);
    's': move(2);
    'a': move(3);
    'd': move(4);
    'q': save();
    'e': exit();
  end;
end;
 
procedure drawMap();
begin
clrscr();
if lastLocation<>location then begin
assign(f2, 'MainMap.txt');
  reset(f2);
 
  for i := 1 to 10 do
    begin
      for j := 1 to 10 do
        begin
          read(f2, v);
          MainMap[i,j]:=v;
          if v=location then begin
          globalX:=j;
          globalY:=i;
          break;
          end;
        end;
        readln(f2);
    end;
    lastLocation:=location;
  close(f2);
  opener(globalY,globalX,'map');
  map[y,x]:=64;
  ;
end;
map[y,x]:=64;
for i := 1 to 13 do
    begin
      for j := 1 to 30 do
        begin
            z:=chr(map[i,j]);
          write(z);
 
        end;
 
      writeln();
    end;
    writeln('y: ',y,' ; x: ',x);
    writeln('location: ', location);
end;
 
 
 
begin
 
  clrscr();
  cursorOff();
 
 
  assign(f2, 'SaveDate.txt');
  reset(f2);
  readln(f2, location);
  lastLocation:=location;
  readln(f2, y);
  readln(f2, x);
  close(f2);
  assign(f2, 'MainMap.txt');
  reset(f2);
 
  for i := 1 to 10 do
    begin
      for j := 1 to 10 do
        begin
          read(f2, v);
          MainMap[i,j]:=v;
          if v=location then begin
          globalX:=j;
          globalY:=i;
          end;
        end;
        readln(f2);
    end;
 
  close(f2);
  opener(globalY,globalX,'map');
  drawMap();
  repeat
    begin
 
      key(readKey());
      drawMap();
    end;
  until 2 = 3;
  readln;
end.
загрузите еще эти файлы для успешной компиляции:
Вложения
Тип файла: txt 1map1.txt (1.1 Кб, 5 просмотров)
Тип файла: txt 2chest10.txt (1 байт, 2 просмотров)
Тип файла: txt 2map1.txt (1.1 Кб, 0 просмотров)
Тип файла: txt 3text21.txt (588 байт, 3 просмотров)
Тип файла: txt MainMap.txt (291 байт, 0 просмотров)
Тип файла: txt SaveDate.txt (10 байт, 0 просмотров)
0
2 / 2 / 0
Регистрация: 06.07.2024
Сообщений: 50
05.08.2024, 11:15  [ТС]
все тема закрыта, я решил проблему

Добавлено через 11 минут
Кто-нибудь знает как добавить русский текст в программу FPC?
С файла он успешно читает русские строки, а вот если написать русские буквы в самой программе, то выведет нечитаемые символы.
0
228 / 169 / 71
Регистрация: 14.06.2024
Сообщений: 458
05.08.2024, 11:57
в каком редакторе пишется программа?
{$codepage utf8}//ansi
0
2 / 2 / 0
Регистрация: 06.07.2024
Сообщений: 50
05.08.2024, 16:55  [ТС]
Цитата Сообщение от udmurt2024 Посмотреть сообщение
в каком редакторе пишется программа?
Free pascal compiler (версия 3.2.2) вот скрины если непонятно:
Миниатюры
Компилятор считывает число из файла в виде белиберды  
Изображения
 
0
18 / 17 / 2
Регистрация: 25.02.2020
Сообщений: 73
08.08.2024, 19:41
Можно в LAZARUS (консольный проект), правая кнопка мыши -> параметры файла-> кодировка CP1251, либо UTF8. Все, русскиий язык работает. Если что LAZARUS создант на основе FREE PASCAL и полностью с ним совместим.
0
Модератор
10352 / 5638 / 3395
Регистрация: 17.08.2012
Сообщений: 17,205
08.08.2024, 22:38
ALEX5791, ну-ну, в консоли Windows (до десятки точно) по умолчанию кодировка CP866, поэтому при установке CP1251, либо UTF8 будут кракозябры. Мало того, попробуйте что-нибудь русское восьмибитное ввести в подпрограмме и вывести это дело в оснвной программе.
1
18 / 17 / 2
Регистрация: 25.02.2020
Сообщений: 73
09.08.2024, 00:42
Cyborg Drone спасибо что нашли ошибку. Конечно же в LAZARUS надо ставить кодировку CP866!
Я перепутал с языком С\С++ который любит кодировку СР1251.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.08.2024, 00:42
Помогаю со студенческими работами здесь

Напишите программу, которая считывает из файла целое число и выводит текст, аналогичный приведенному в примере

Есть структура, компилятор считывает некоторые её поля ТОЛЬКО из адресов, кратным двум, а их там нет! (полей), как быть?
То есть вот структура: struct TGAHEADER { char IdLength; char ColourMapType; char DataTypeCode; ...

Программа считывает с клавиатуры число N, L, K и выводит одно число.
Задача Leopold Кот Леопольд пошел на рыбалку и наловил рыбы. Каждую рыбу он старательно взвесил. Первая рыба (самая маленькая),...

Составить программу которая считывает натуральное число и определяет равняется ли это число сумме квадратов каких либо д
Нужна помощь: Составить программу которая считывает натуральное число и определяет равняется ли это число сумме квадратов каких либо двух...

Программа, которая считывает число с клавиатуры и находит ближайшее справа число, которое является квадратом натурального числа
Написать программу, которая считывает число с клавиатуры и находит ближайшее справа число, которое является квадратом натурального числа, и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru