Помогите разобраться

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
kr00t
новенький
Сообщения: 10
Зарегистрирован: 08.03.2008 23:08:38
Откуда: Нижний Новгород
Контактная информация:

Помогите разобраться

Сообщение kr00t »

Код: Выделить всё

program loginin;
var
l,p,e,r,w:string;
q:text;
begin
writeln('login');               
readln(l);                       
      if l='' then begin
      writeln('Введите логин');
      halt
      end
      else
writeln('password');
readln(p);
      if p='' then begin
      writeln('Введите пароль');
      halt
      end
      else
w:=l+p;
Assign(q,'/home/kr00t/Desktop/1.txt');
 repeat
 readln(q,r);
 if r=w then
 writeln('VeRnO')
 else
 writeln('123456');
 until Eof(q)=true;
Close(q);
end.

почему при запуске мне выдает следующее

Код: Выделить всё

login
123
password
456
Runtime error 103 at $0000000000400363
  $0000000000400363
  $0000000000400178


? Я програмирую в паскале первый день (до этого в Делфи под виндой только)...
Аватара пользователя
Alexx2000
постоялец
Сообщения: 490
Зарегистрирован: 25.10.2006 00:22:07
Откуда: Мытищи
Контактная информация:

Сообщение Alexx2000 »

Перед чтением из файла надо открыть его для чтения

Код: Выделить всё

Assign(q,'/home/kr00t/Desktop/1.txt');
Reset(q);
kr00t
новенький
Сообщения: 10
Зарегистрирован: 08.03.2008 23:08:38
Откуда: Нижний Новгород
Контактная информация:

Сообщение kr00t »

спасибо!!!!!!!!! я уже 2 часа мучался!!! блин, точно нужен отдых..
еще раз спасибо
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Я бы оформил так:

Код: Выделить всё

 program loginin;
var
  l,p,e,r,w:string;
  q:text;
begin
  writeln('login');
  readln(l);
  if l='' then begin
    writeln('ОШИБКА: Не введен логин!');
    halt;
  end;
  writeln('password');
  readln(p);
  if p='' then begin
    writeln('ОШИБКА: Не введен пароль!');
    halt;
  end;
  w:=l+p;
  Assign(q,'/home/kr00t/Desktop/1.txt');
{$I+}
  Reset(q);
  if IOResult<>0 then begin
    writeln('ОШИБКА: Файл не найден!');
    halt;
  end;
{$I-}
  repeat
    readln(q,r);
    if r=w then
      writeln('VeRnO')
    else
      writeln('123456');
  until Eof(q);
  Close(q);
end.
kr00t
новенький
Сообщения: 10
Зарегистрирован: 08.03.2008 23:08:38
Откуда: Нижний Новгород
Контактная информация:

Сообщение kr00t »

Я в результате всего своего эксперемента (программы loginin) хочу научиться пользоваться трехмерным массивом, считывать и записывать его в файл, пароль в результате быдет определяться из нескольких "ячеек", определенным образом и там будет стоять что-то вроде подмены символов, вводимых с клавиатуры. Если учесть, что я этим занимаюсь чге-то 30 минут в день (больше не получается), в выходные по-больше, то к лету только будет результат.
В данный момент пытаюсь занести значения в массив из файла. Впринципе все нормально, но я хочу чтоб не вся строчка лежала в переменной, а лишь до определенного знака в ней.
Аватара пользователя
Brainenjii
энтузиаст
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Brainenjii »

лучше учиться пользовать БД, чем многомерными массивами, ИМХО ^_^ Хотя смотря какая задача...
kr00t
новенький
Сообщения: 10
Зарегистрирован: 08.03.2008 23:08:38
Откуда: Нижний Новгород
Контактная информация:

Сообщение kr00t »

задача научиться пользоваться :), да и базы данных, я думаю, посложнее будут. их я потом разбиру...




Знания - усвоенная информация.
Кто владеет информацией - тот владеет Миром.
v-t-l
энтузиаст
Сообщения: 744
Зарегистрирован: 13.05.2007 16:27:22
Откуда: Belarus

Сообщение v-t-l »

Кстати, цикл лучше организовать, как while, а не repeat, а то файл лишний раз читается, даже если пустой. :)
kr00t
новенький
Сообщения: 10
Зарегистрирован: 08.03.2008 23:08:38
Откуда: Нижний Новгород
Контактная информация:

Сообщение kr00t »

большой разницы нет. я щас все с 0 переделываю (немного, правда пока сделал). Я думаю, что в результате работы, можно будет выложить исходники для всеобщего обозрения и пременения (всмысле не стыдно показать будет). Потому код должен быть всем понятен, прост и мобилен.
Ответить