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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.06.2007, 18:18   #1
Scorpeon
Пользователь
 
Регистрация: 06.04.2007
Сообщений: 36
По умолчанию Сохранение ListView в файл

Люди нашол в интернете код как сохранять содержимое ListView в текстовый файл, попробовал разобраться но не че не вышло, выдает ошибку, помогите плиз

Цитата:
Procedure SavListView(S: String; ListView: ListView);
Const Delimiter = '|';
Var ff: TextFile;
t: Integer;
begin
AssignFile(ff, S);
ReWrite(ff);
try
With ListView Do For t:=0 to Items.Count - 1 Do WriteLn(ff,StringReplace(Items[t].Caption + Delimiter + Items.Item[t].SubItems.Text,#13#10,Delimiter,[rfReplaceAll]));
finally
CloseFile(ff);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SavListView('c:\1.txt'ListView1);
end;
Scorpeon вне форума Ответить с цитированием
Старый 08.06.2007, 10:18   #2
mrandrey
Форумчанин
 
Регистрация: 30.03.2007
Сообщений: 124
По умолчанию

И что там у тебя не работает? Поисправляй синтактические ошибки, такие как TListView вместо ListView и вставки запятых и тогда все будет работать.
Тут без 100г не розберешся.....
Спасибо не нужно, а на весы слева кликнуть не помешает!!!
mrandrey вне форума Ответить с цитированием
Старый 08.06.2007, 10:34   #3
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Procedure SavListView(S: String; ListView1: TListView);
Const Delimiter = '|';
Var ff: TextFile;
t: Integer;
begin
AssignFile(ff, S);
ReWrite(ff);
try
With ListView1 Do For t:=0 to Items.Count - 1 Do
WriteLn(ff,StringReplace(Items[t].Caption +
Delimiter + Items.Item[t].SubItems.Text,#13#10,Delimiter,[rfReplaceAll]));
finally
CloseFile(ff);
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
SavListView('c:\1.txt',ListView1);
end;

Короче, т.к. обращение идет к одному и тому же компоненту, то и называть его "желательно" по имени (свойство Name), и 1(еденицы) пропускать настоятельно НЕ рекомендую.....

P.S.: Да, с такими вопросами в Помощь стьюдентам!

Последний раз редактировалось Alex21; 08.06.2007 в 10:40.
Alex21 вне форума Ответить с цитированием
Старый 08.06.2007, 11:33   #4
mrandrey
Форумчанин
 
Регистрация: 30.03.2007
Сообщений: 124
По умолчанию

Цитата:
и 1(еденицы) пропускать настоятельно НЕ рекомендую.....
Alex21 ,чтот ты этим добился? Изменил название параметра и только, а вообще насколько я знаю длинные имена переменных использовать нежелательно (тоисть лучше короткие), так что еденичку добавлять не нужно.
Тут без 100г не розберешся.....
Спасибо не нужно, а на весы слева кликнуть не помешает!!!
mrandrey вне форума Ответить с цитированием
Старый 08.06.2007, 13:17   #5
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Цитата:
Сообщение от mrandrey Посмотреть сообщение
Alex21 ,чтот ты этим добился? Изменил название параметра и только, а вообще насколько я знаю длинные имена переменных использовать нежелательно (тоисть лучше короткие), так что еденичку добавлять не нужно.
Если хорошенько посмотреть код автора вопроса
>SavListView('c:\1.txt',ListView1);
видно, что имелось ввиду: обращение идет именно к ListView1, поэтому и добавляем везде 1.
А вообще про длинные параметры: история такая есть:
Один чел, любил пользовать(я тоже) короткие переменные типа i,j,k,..., непонравилось это преподу и говорит он ему: "переменные должны быть понятны!". Студент исправился, и приносит такой код(паскаль):
..
var
peremennaja_celo4islennogo_tipa_nom er_odin : integer;
peremennaia_strikovogo_tipa_dlia_hr anenia_stroki_iz_faila :string;
..
И в таком виде написана вся прога. А главное придраться не к чему!!!
Alex21 вне форума Ответить с цитированием
Старый 12.06.2007, 15:26   #6
AidarBik
Форумчанин
 
Регистрация: 12.06.2007
Сообщений: 130
По умолчанию

Цитата:
Сообщение от Alex21 Посмотреть сообщение
Если хорошенько посмотреть код автора вопроса
>SavListView('c:\1.txt',ListView1);
видно, что имелось ввиду: обращение идет именно к ListView1, поэтому и добавляем везде 1.
А вообще про длинные параметры: история такая есть:
Один чел, любил пользовать(я тоже) короткие переменные типа i,j,k,..., непонравилось это преподу и говорит он ему: "переменные должны быть понятны!". Студент исправился, и приносит такой код(паскаль):
..
var
peremennaja_celo4islennogo_tipa_nom er_odin : integer;
peremennaia_strikovogo_tipa_dlia_hr anenia_stroki_iz_faila :string;
..
И в таком виде написана вся прога. А главное придраться не к чему!!!
Но ведь там, где идет обращение к ListView1, это уже вызов процедуры, так что можно 1 в ее описании и не ставить.
AidarBik вне форума Ответить с цитированием
Старый 12.06.2007, 15:51   #7
mrandrey
Форумчанин
 
Регистрация: 30.03.2007
Сообщений: 124
По умолчанию

[QUOTE]
Цитата:
Сообщение от mrandrey
Alex21 ,чтот ты этим добился? Изменил название параметра и только, а вообще насколько я знаю длинные имена переменных использовать нежелательно (тоисть лучше короткие), так что еденичку добавлять не нужно.

Если хорошенько посмотреть код автора вопроса
>SavListView('c:\1.txt',ListView1);
видно, что имелось ввиду: обращение идет именно к ListView1, поэтому и добавляем везде 1.
QUOTE]

А если еще лучше присмотреться, то процедура глобальная и о существовании некого ListView1, также как и о form1 не подозревает, а добавление той самой еденицы будет только путать, так что она там не нужна, а в идеале вообще назвать VarOfListView

PS: А история мне понравилась (выдумал или было?)
Тут без 100г не розберешся.....
Спасибо не нужно, а на весы слева кликнуть не помешает!!!
mrandrey вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение в текстовый файл Askat Общие вопросы Delphi 11 26.02.2008 14:47
Сохранение массива в файл Artem Общие вопросы Delphi 10 11.12.2007 20:00
Сохранение в *.Bmp - файл Рустам Мультимедиа в Delphi 14 28.11.2007 21:32
Сохранение в файл Македонский Общие вопросы Delphi 4 05.09.2007 15:04
Сохранение в файл *.*С Noor Общие вопросы C/C++ 6 08.01.2007 22:44