Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > Сохранение в файл определенного формата


Автор: Kbl4AH 9.12.2008, 19:40
Здравствуйте, уважаемые градари.
Столкнулся со следующей проблемой.
Нужно сохранить в файл данные: вектора X[N] и Y[M].
Все ясно, в принципе.
Но есть одна проблема: должен быть определенный формат.
http://ipicture.ru/Gallery/Viewfull/10095484.html
(первая строка - количество символов в строке)
Подскажите, пожалуйста, как это можно сделать? smile 
Только не очень мудрено - прога учебная.

Автор: Kbl4AH 9.12.2008, 23:01
Сохранить в файл получилось smile 
А вот как прочитать из него данные ума не приложу smile 

Автор: Dobermann 10.12.2008, 00:40
seekeof, seekeoln - пропускает пробелы при считывании (отлично работает если в файле только числа)

Автор: Kbl4AH 10.12.2008, 00:52
Цитата(Dobermann @ 10.12.2008,  01:40)
seekeof, seekeoln - пропускает пробелы при считывании (отлично работает если в файле только числа)

И что?
У меня пробелов вобще между числами может не быть:
999.999-10.000__1.000_99.000_-1.000
(В файле вместо подчеркиваний - пробелы...)

Автор: Kbl4AH 11.12.2008, 02:45
В общем, я сделал так:

Код

uses crt;
var 
 s, ss: string;
 n, m, i, j, e: integer;
 nm: longint; 
 f: text;
 x: array [1..15] of real;
  
procedure read_file;
begin
 assign(f, 'C:\FOR001.DAT');
 {$I-}
 reset(f);
 {$I+}
 if ioresult <> 0 then
  begin
   writeln('Oshibka! Fail ne najden.');  
   exit;
  end;
 read(f, s);
 val(copy(s, 0, 2), n, e);
 val(copy(s, 3, 2), m, e);
 i := 0;
 while i < n do
  begin
   readln(f, s);
   for j := 1 to 10 do
    begin
     ss := copy(s, (j -1) * 7 + 1, 7);
     delete(ss, 4, 1);
     val(ss, nm, e);
     x[i + j] := nm / 1000;
    end;
   i := i + trunc(length(s) / 7);
  end;
  close(f);
 {аналогично для y[i]}
end;

Автор: CHITER 11.12.2008, 02:57
Кстати, тебе препод может сделать замечание, насчет writeln('Oshibka! Fail ne najden.');, ибо не обязательно, что файл не найден, может и просто не прочитать, или еще что нибудь smile

Автор: Kbl4AH 11.12.2008, 07:15
Цитата(CHITER @  11.12.2008,  03:57 Найти цитируемый пост)
Кстати, тебе препод может сделать замечание, насчет writeln('Oshibka! Fail ne najden.');, ибо не обязательно, что файл не найден, может и просто не прочитать, или еще что нибудь 

 smile 
Исправил на Oshibka chteniya faila!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)