Работа С Файлами Delphi

Тема в разделе "Pascal and Delphi", создана пользователем sima12, 17 янв 2013.

  1. sima12

    sima12 New Member

    Регистрация:
    14 дек 2012
    Сообщения:
    2
    Симпатии:
    0
    Подскажите пожалуйста, возможно ли вставить в начало документа число.
    В процессе работы программы, мы записываем в файл некоторые числа. Далее нам необходимо, вставить в начало файла количество данных чисел, не затирая при этом первый элемент. Можно ли сделать это не используя файл-посредник?
    Допустим файл f: 1 4 3 4 45 2 56. посчитали количество чисел, например 7 и записали файл f в виде: 7 1 4 3 4 45 2 56
     
  2. sinkopa

    sinkopa Well-Known Member

    Регистрация:
    17 июн 2009
    Сообщения:
    344
    Симпатии:
    9
    Числа, я так понял, как строковые данные у Вас в файле лежат?
    Код (Delphi):
    procedure TForm1.Button1Click(Sender: TObject);
    const
    ENDOFSTR : Word = 0;
    var
    f: TMemoryStream;
    s: string;
    n, count : Integer;
    begin
    { читаем файл в поток }
    f := TMemoryStream.Create;
    f.LoadFromFile('c:\test.txt');

    { дописываем в конец потока #0 (символ завершения длинной строки)}
    f.Position := f.Size;
    f.WriteBuffer(ENDOFSTR,SizeOf(Char));

    { забираем строчку из памяти потока в строковую переменную }
    s := string(PChar(f.Memory));

    ShowMessage(s); // '1 4 3 4 45 2 56'

    { подсчет количества "цифровых" данных (те что не пробел) }
    count := 0;

    n := Pos(' ',s);
    while (n > 0) do
    begin
    Inc(count);
    s := Copy(s,n+1,Length(s));
    n := Pos(' ',s);
    end;
    Inc(count);

    { добавляем к строчке (слева) }
    s := IntToStr(count)+ ' ' + string(PChar(f.Memory));

    ShowMessage(s); // '7 1 4 3 4 45 2 56'

    { очищаем стрим, записываем строку, сохраняем в файл }
    f.Clear;
    f.WriteBuffer(s[1],Length(s)*SizeOf(Char));
    f.Position := 0;
    f.SaveToFile('c:\test.txt');
    f.Free;
    end;
     
  3. Cambur

    Cambur Active Member

    Регистрация:
    20 июн 2010
    Сообщения:
    27
    Симпатии:
    0
    sinkopa, а почему бы просто не использовать TStrings?
    по-моему намного проще ....
     
Загрузка...
Похожие Темы - Работа Файлами Delphi
  1. gx6060
    Ответов:
    2
    Просмотров:
    415
  2. seoman2
    Ответов:
    21
    Просмотров:
    766
  3. NickProstoNick
    Ответов:
    22
    Просмотров:
    1.520
  4. vladis222
    Ответов:
    3
    Просмотров:
    1.127
  5. Lyuska
    Ответов:
    1
    Просмотров:
    1.171

Поделиться этой страницей