Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.11.2011, 08:54   #1
RemiJK
Новичок
Джуниор
 
Регистрация: 22.11.2011
Сообщений: 4
По умолчанию Сохранение файла

Возможно ли выполнить пересохранение файла без загрузки его в memo. Есть текстовый файл при попытке прочитать его в memo или listbox читает только первую строку, если же предварительно открыть его блокнотом и выполнить файл - сохранить, проблема отпадает( т.е. файл читается полностью).
Вложения
Тип файла: txt Куб1.TXT (4.7 Кб, 142 просмотров)
RemiJK вне форума Ответить с цитированием
Старый 22.11.2011, 08:57   #2
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Что-то Вас немного непонятно... Как считываете в Memo? Зачем "пересохранять"?
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 22.11.2011, 09:00   #3
RemiJK
Новичок
Джуниор
 
Регистрация: 22.11.2011
Сообщений: 4
По умолчанию

Считываю следующим образом:

procedure TForm1.btn1Click(Sender: TObject);
var F1: file;
F2: File;
begin
with dlgOpen1, mmo1 do
if Execute then
lines.LoadFromFile(FileName);
end;

читает он только превую строку, а если файл пересохранить прочтет все. или просто выполнить файл - сохранить.
RemiJK вне форума Ответить с цитированием
Старый 22.11.2011, 09:24   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

приведённый Вами файл НЕ ТЕКСТОВЫЙ (после первой строки содержится нулевой байт).
используйте для работы с ним TFileStream (ну или работайте любым другим образом, но как с БИНАРНЫМ файлом).

p.s. что Вы с ним хотите сделать? Может быть, Вы озвучите исходную задачу?
И нам тогда будет легче предложить Вам конкретное решение?...
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.11.2011, 09:28   #5
Zer0
Форумчанин
 
Аватар для Zer0
 
Регистрация: 13.12.2007
Сообщений: 788
По умолчанию

Кстати возможно, что обычные
Код:
Reset(file); while not eof(file) readln(file,s)
сработают в данном случае, но точно говорить не могу
благодарность - сюда (не забываем писать от кого)
Zer0 вне форума Ответить с цитированием
Старый 22.11.2011, 09:38   #6
RemiJK
Новичок
Джуниор
 
Регистрация: 22.11.2011
Сообщений: 4
По умолчанию

я модифицирую этот файл под другую програмку Scad. Программа для этого уже написана единственное я работал в ней как с текстовым файлом, соответственно приходилось пересохранять исходный файл. делал я это вручную, а теперь пытаюсь описать програмно.

если в кратце мне надо перевести данный файл "Куб1" в текстовый формат.
RemiJK вне форума Ответить с цитированием
Старый 23.11.2011, 14:46   #7
RemiJK
Новичок
Джуниор
 
Регистрация: 22.11.2011
Сообщений: 4
По умолчанию

Благодарю за помощь, попробовал Reset(file); while not eof(file) readln(file,s)
ситуация таже.
Можно узнать подробней про TFileStream, возможно ли эту переменную загнать в memo?
RemiJK вне форума Ответить с цитированием
Старый 23.11.2011, 16:53   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
если в кратце мне надо перевести данный файл "Куб1" в текстовый формат.
проверяйте и разбирайтесь:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var TS, TSOut : TFileStream;
  buf : array[1..16*1024] of byte;
  count, i : integer;
begin
  TS := TFileStream.Create('Куб1.TXT', fmOpenRead);
  TSOut := TFileStream.Create('Куб1РеальноТекстовый.txt', fmCreate);
  while TS.Position<TS.Size do begin
     count := sizeOf(buf);
     if count > (TS.Size - TS.Position) then
          count := (TS.Size - TS.Position);
     TS.ReadBuffer(buf, count);
     for I := 1 to count do
         if (buf[i]<$20) and (buf[i]<>09)
              and (buf[i]<>$0A) and (buf[i]<>$0D)  then buf[i] := $20;
     TSOut.WriteBuffer(buf, count);
  end;
  FreeAndNil(TS);
  FreeAndNil(TSOut);
  ShowMessage('Конвертация в текст произведена!');
end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сохранение файла... evlampus76 Паскаль, Turbo Pascal, PascalABC.NET 2 15.01.2011 15:17
сохранение файла Dimarik PHP 5 16.07.2010 19:37
Открытие/сохранение файла НеВа6464 Microsoft Office Excel 4 01.06.2009 14:06
Сохранение файла KREGI Помощь студентам 4 30.03.2009 21:09
Сохранение файла Македонский Общие вопросы Delphi 7 17.08.2007 08:35