Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.01.20;
Скачать: CL | DM;

Вниз

недопонимаю...   Найти похожие ветки 

 
new_user )   (2007-12-18 19:51) [0]

Пишу в паскале программу, нужно просто считать из файла все значения. В файле только целые числа. Делаю так:
program file_1;
uses crt;
var f : file of integer;
a : integer;
ch : char;
s : string;
begin
clrscr;
Writeln("Hello, world!");
s := "f:\uxx\j.txt";
assign(f,s);
reset(f);
while not eof(f) do begin
read(f,a);
writeln(a, " ");
end;
close(f);
readln;
end.


выводит не те числа, что неправильно?
ЗЫ не ругайтесь сильно, только начинаю )


 
Palladin ©   (2007-12-18 19:54) [1]

в случае надежды, что они действительно все integer и каждое значение с новой строки то:

program file_1;
uses crt;
var
 f : file of integer;
 a : integer;
 ch : char;
 s : string;
begin
 clrscr;
 Writeln("Hello, world!");
 s := "f:\uxx\j.txt";
 assign(f,s); reset(f);
 while not eof(f) do
  begin
   readln(f,a);
   write(a, " ");
  end;
 close(f);
 readln;
end.


 
new_user )   (2007-12-18 20:02) [2]

а как быть, если они не каждый с новой строки? допустим указаны через пробел


 
Германн ©   (2007-12-18 20:02) [3]


> new_user )   (18.12.07 19:51)

А что такое по твоему file of integer?


 
new_user )   (2007-12-18 20:07) [4]


> Германн ©   (18.12.07 20:02) [3]
> > new_user )   (18.12.07 19:51) А что такое по твоему file
> of integer?

Файл, содержащий целые числа ) То есть если файл так описан, то каждое число с новой строки?


 
Palladin ©   (2007-12-18 20:12) [5]


> [3] Германн ©   (18.12.07 20:02)

о млин... точно... дас ист пиво...


> [2] new_user )   (18.12.07 20:02)

ну так как бы это...

Var
f:Text;
r,s:String;
nLinesCounter,n,i:Integer;

Function StrToInt(Var s:String;Var n:Integer):Boolean;
Var
c:Integer;
Begin
Val(s,n,c);
StrToInt:=c<>0;
End;

Begin
Assign(f,<ФайлеНэйм>); Reset(f);
nLinesCounter:=0;
While Not Eof(f) Do
 Begin
  nLinesCounter:=nLinesCounter+1;
  ReadLn(f,s);
  r:="";
  For i:=1 to Byte(s[0]) Do
   If s[i]<>" " Then r:=r+s[i] Else
    Begin
     If StrToInt(r,n) Then Write(n," ") Else
      Begin
       WriteLn("Line ",nLinesCounter," Error");
       Halt;
      End;
     r:="";
    End;
 End;
Close(f);
WriteLn;
ReadLn;
End.


 
Германн ©   (2007-12-18 20:13) [6]


> Файл, содержащий целые числа ) То есть если файл так описан,
>  то каждое число с новой строки?
>

Ответ неверный. Строки есть только в текстовых файлах.


 
Palladin ©   (2007-12-18 20:13) [7]


> 4] new_user )   (18.12.07 20:07)

неа... это означает что файл:

1. размер в байтах которого кратен SizeOf(Integer)
2. содержит в native виде целочисленные значения


 
Palladin ©   (2007-12-18 20:27) [8]


> [6] Германн ©   (18.12.07 20:13)

неа...
1. WinOS: строки есть в любом файле, который содержит набор симоволов оканчивающийся на #13#10 (\r\n)
2. *nix: строкой считается любой набор символов, который оканчивается, в зависимости от OS, управляющим символом #13(\r), или управляющим символом #10(\n) (что гораздо чаще встречается), или совокупностью управляющих символов #13#10(\r\n) и, конечно в зависимости от компилятора, по пути к следованию к этим управляющим символам не встречаются другие управляющие символы отличные от выше приведенных

:)


 
new_user )   (2007-12-18 21:07) [9]

спасибо всем )разобрался



Страницы: 1 вся ветка

Текущий архив: 2008.01.20;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.026 c
15-1197899371
vajo
2007-12-17 16:49
2008.01.20
Intel выпустила самый маленький твердотельный накопитель


15-1197744591
GeLLeR
2007-12-15 21:49
2008.01.20
Протестите прогу


2-1198361464
Embargo
2007-12-23 01:11
2008.01.20
Без ошибки


2-1198171683
AntiPupkin
2007-12-20 20:28
2008.01.20
Заморочка с postmessage()


2-1198140185
namco
2007-12-20 11:43
2008.01.20
программа из delphi