Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите додумать ф-ю открытия txt файла, и все его содерж.


Страницы:   1 2

Lexxx ©   (2004-09-23 08:57:00) 

Поместить в строковую переменную. Вот что сделал: (работает не коректно, но и ошибки не выдает)
function InsFile(filename : string): string;
var
TF: TextFile;
begin
 AssignFile(TF, ExtractFileDir(ParamStr(0))+'\'+filename);
 read(TF, Result);
 CloseFile(TF);
end;

Заранее спасибо.


Anatoly Podgoretsky   (2004-09-23 12:03:00) [21]

kukuikar ©   (23.09.04 11:58) [14]
К меня такие есть, логи моего домашнего апач сервера, иногда доходят до 1 гб в месяц


kukuikar   (2004-09-23 11:58:00) [22]


> туда предположим 500 MB текстовый файл?

Ты создавал такие файлы, или где-то видел?
Покажи!


Zhekson   (2004-09-23 11:08:00) [23]

Абалдеть. А есть ограничения на обьём StringList_a и стринговую переменную? Всмыле влезет туда предположим 500 MB текстовый файл?


Fay   (2004-09-23 10:53:00) [24]

2  [11] Romkin ©   (23.09.04 10:32)
Если файл был создан (для примера) с флагом FILE_FLAG_DELETE_ON_CLOSE, то этот код не прокатит 8)


Romkin   (2004-09-23 10:32:00) [25]

ЭЭЭ!!! А вдруг ошибка?!
function InsFile(filename : string): string;
var
 List: TStringList;
begin
 List:= TStringList.Create;
 try
   List.LoadFromFile(ExtractFileDir(ParamStr(0))+'\'+filename);
   Result := List.Text;
 finally
   List.Free;
 end;
end;


TUser   (2004-09-23 10:30:00) [26]


> Объем исходников никак не влияет на оптимальность.
>
> Основной критерий качества исходников - читабельность, структурированность.

В данном случае этот спор совершенно не нужен. Спосов [1] и понятнее, и чтабельнее, и исходник меньше, и работает быстрее, чем BlockRead'ы всякие.


kukuikar   (2004-09-23 10:26:00) [27]


> Мастер ©   (23.09.04 10:10) [8]

Верно!


Мастер   (2004-09-23 10:10:00) [28]

> kukuikar ©   (23.09.04 09:57) [7]
Основным критерием является оптимальный объем и оптимальная
же скорость.


Да ну?

Объем исходников никак не влияет на оптимальность.

Основной критерий качества исходников - читабельность, структурированность.

Основной критерий качества исполняемых файлов - правильное выполнение предусмотренных техзаданием функций.


kukuikar   (2004-09-23 09:57:00) [29]


> А я-то раньше думал, что основным критерием является скорость,
> а не размер исходного кода.
> Видимо, я ошибался...

Основным критерием является оптимальный объем и оптимальная же скорость.


Gero   (2004-09-23 09:35:00) [30]


> Борись за уменьшение объема исходных кодов.

А я-то раньше думал, что основным критерием является скорость, а не размер исходного кода.
Видимо, я ошибался...


Lexxx   (2004-09-23 09:29:00) [31]

Тогда спасибо!!
Получилась так:
function InsFile(filename : string): string;
var
List: TStringList;
begin
 List:= TStringList.Create;
 List.LoadFromFile(ExtractFileDir(ParamStr(0))+'\'+filename);
 Result := List.Text;
 List.Free;
end;


kukuikar   (2004-09-23 09:19:00) [32]


> а никак нельзя откалаться от TStringList

А чем тебе StringList неугодил?
Сравни объем твоего кода и моего.
Борись за уменьшение объема исходных кодов.
Проще самому будет.
Или если кажется проще то делай так -->> Gero © [3]


Gero   (2004-09-23 09:13:00) [33]


> Lexxx   (23.09.04 08:57)

Ты из файла всегда четыре байта считываешь.
Если хочешь все, используй BlockRead + FileSize.


Lexxx   (2004-09-23 09:09:00) [34]

Подойдет :)
так и делал до этого, а никак нельзя откалаться от TStringList? Или это ужасно сложно, и приходится считывать файл по символу до EOF?


kukuikar   (2004-09-23 09:05:00) [35]

var
List: TStringList;

List: TStringList.Create;
List.LoadFromFile(ExtractFileDir(ParamStr(0))+'\'+filename);

А дальше List.Textи есть содержимое твоего текстового файла.
Не подойдет?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо