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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2014, 11:15   #1
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию Работа с текстовым файлом

Здравствуйте! не судите строго, с типизированными файлами работать умею, а с текстовыми нет, только при загрузки в Tstringlist. Цель задачи указать на файл через topendialog, затем создать его точную копию, но с расширением *.txt, укажу загвостку, файл может быть любого типа (например exe -файл, ведь если его открыть через блокнот, то выведутся много непонятных символов, мне нужно их в точности скопировать). Спасибо за понимание! Вроде начал нормально, а дальше запутался, верно ли начал делать?


Код:
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
f:TextFile;
ts:TStringList;
begin
if not OpenDialog1.Execute then Exit;
ts:=TStringList.Create(self);
ts.Clear;
s:=OpenDialog1.FileName;
AssignFile (f,s);
reset(F);

Seek(f,0);


      while not Eof(F) do
     ts.Add({как-то скопировать построчно инфу из файла (exe, и пр.)})

ts.free;
end;
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 26.08.2014, 11:17   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

См. CopyFile
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 26.08.2014, 11:18   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

забудьте. Текстовые файлы (TextFile) предназначены для работы с ТЕКСТОВЫМИ файлами. тут без вариантов!

Для работы с бинарными файлами используете другие средства (варианты
f: file of byte; или нетипизированный f : file; или, лучше всего, TFileStream)


Цитата:
Сообщение от Аватар
См. CopyFile
да! если не стоит задача "влезть" внутрь файла, а нужно его скопировать, то лучше использовать функцию копирования!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 26.08.2014, 11:35   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Возможно копирование нужно прикрутить к прогрессбару. Тогда через TFileStream перегонку делать.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.08.2014, 11:53   #5
FaTaL
Участник клуба
 
Аватар для FaTaL
 
Регистрация: 09.11.2007
Сообщений: 1,761
По умолчанию

В вашем случае можно примерно так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  fname   : string; // полное имя исходного файла
  newfname: string; // полное имя нового файла без расширения
begin
  If OpenDialog1.Execute then
    begin
      fname := OpenDialog1.FileName;
      newfname := Copy (fname, 1, Length(fname) - Length (ExtractFileExt(fname)));
      CopyFile (PChar(fname), PChar(newfname + '.txt'), true);
    end;
end;
FaTaL вне форума Ответить с цитированием
Старый 26.08.2014, 21:06   #6
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

С копированием понятное дело, но все равно спасибо, а с файлами без расширения как быть ( Вернее с расширением "файл" d)?

З.ы. где можно подробнее посмотреть примеры работы с tfilestream? И вообще узнать что это такое и какую структуру из себя представляет?
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 26.08.2014, 21:14   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
а с файлами без расширения как быть
Так же. Расширение не писать.
Цитата:
где можно подробнее посмотреть примеры работы с tfilestream?
в Хелпе Делфи конечно же )
Там подробнее некуда.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 27.08.2014, 01:30   #8
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
С копированием понятное дело, но все равно спасибо, а с файлами без расширения как быть ( Вернее с расширением "файл" d)?
Какая разница есть ли расширение у файла или его нет? Файл который на диске есть набор единиц и нулей и копируются эти единицы и нули независимо от расширения.
northener на форуме Ответить с цитированием
Старый 27.08.2014, 12:23   #9
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Да, но некоторые программы свои файлы не дают копировать, то есть дают, но шифруют, либо затирают, поэтому хочу все содержимое переписать в озу, а оттуда уже копировать в текствовый файл
from dark to light)
Алексей_2012 вне форума Ответить с цитированием
Старый 27.08.2014, 16:51   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
Сообщение от Алексей_2012 Посмотреть сообщение
Да, но некоторые программы свои файлы не дают копировать, то есть дают, но шифруют, либо затирают, поэтому хочу все содержимое переписать в озу, а оттуда уже копировать в текствовый файл
Думаю, что здесь очень умная мысль, но закодированная. Алексей, ключ для раскодировки, плиз
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++ Работа с текстовым файлом marina12 Помощь студентам 0 19.03.2013 14:34
Работа с текстовым файлом, C++ RockGirl Помощь студентам 1 15.05.2011 15:53
Работа с текстовым файлом )Игнат( Помощь студентам 4 13.11.2010 16:29
Работа с текстовым файлом Vixess12 Помощь студентам 0 08.06.2010 21:24
Работа с текстовым файлом simka007 Помощь студентам 7 06.02.2009 14:21