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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.02.2014, 16:52   #1
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию ListView

Всем привет, такая проблема.
Заполняю ListVIew из Edit вот так
Код:
  Item := sListView1.Items.Add;
  Item.Caption := sEdit1.Text;
  Item.SubItems.Add(sEdit2.Text);
  Item.SubItems.Add(sEdit3.Text);
Сохраняю так
Код:
 AssignFile(F, '321.txt') ;
 Rewrite(F);
 for i := 0 to sListView1.Items.Count - 1 do
   Begin
     S:= sListView1.Items.Item[i].Caption+',';
     for j := 0 to sListView1.Items.Item[i].SubItems.Count - 1 do
     S:=S+sListView1.Items.Item[i].SubItems.Strings[j]+ ',';
     SetLength(S, Length(s)-1);
     WriteLn(F,S);
     end;
     CloseFile(F);
Так вот если писать из edit добавлять в listview вот так
1 колонка / 2 колонка / 3 колонка
почта почта / Тест / тест

то при сохранение почему то 'Почта почта' смещается. То есть получается так что в файл записывается так
1 колонка / 2 колонка / 3 колонка
почта / почта / тест
а второе слово тест сохраняется в файл как четвертая колонка.
Как сделать что бы он сохранял слово даже если оно через пробел написано? Заранее спасибо.
nefakt вне форума Ответить с цитированием
Старый 20.02.2014, 17:10   #2
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

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

Последний раз редактировалось doktor255; 20.02.2014 в 17:12.
doktor255 вне форума Ответить с цитированием
Старый 20.02.2014, 17:14   #3
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

слеш этот я тут просто написал , так он и сохраняет через запятую как и в коде написано.
nefakt вне форума Ответить с цитированием
Старый 20.02.2014, 17:15   #4
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Вот теперь просто напиши что получилось на самом деле, и что нужно было получить.
doktor255 вне форума Ответить с цитированием
Старый 20.02.2014, 17:17   #5
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

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

Вот как все сохраняет "Скопировал из файла после как сохранил"
сайт,сайт,сайт //Первая строка из трех столбцов тут все правильно а если написать через пробел то он так сохраняет например в первом столбце я написал слово сайт через пробел вот так са йт то он сохраняет так
са,йт,сайт,сайт // видишь он слово из первого столбца сохранил в два столбика в файле, а третий столбик сместился получается что третий столбик стал четвертым.

Последний раз редактировалось Stilet; 20.02.2014 в 17:50.
nefakt вне форума Ответить с цитированием
Старый 20.02.2014, 17:21   #6
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

Я вижу что ты говоришь. Непонятно почему ты игнорируешь просьбы. Ок, дам теорию.
Тип стринг хранит данные неизменно. Что записал в него, то и получил. А вот если используется к примеру StringList, такие проблемы могут возникнуть. То есть проблема либо в используемых типах, либо в корявости записи данных.
doktor255 вне форума Ответить с цитированием
Старый 20.02.2014, 17:29   #7
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

В том то и дело что он сохраняет как я выше написал. Он у меня читает через String List , но в файл так добавляется при сохранение. А сохраняет он с помощью String
вот в var что добавлено на сохранение
Код:
 var
 I, J: Integer;
  F: TextFile;
  S:String;
nefakt вне форума Ответить с цитированием
Старый 20.02.2014, 17:30   #8
doktor255
Заблокирован
 
Регистрация: 31.03.2011
Сообщений: 976
По умолчанию

В самом файле запятая вместо пробела присутствует?
doktor255 вне форума Ответить с цитированием
Старый 20.02.2014, 17:31   #9
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Вот полный код на сохранение и чтение
Код:
var
  Form5: TForm5;
  I, J: Integer;
  F: TextFile;
  S:String;


procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
begin
 AssignFile(F, '321.txt') ;
 Rewrite(F);
 for i := 0 to sListView1.Items.Count - 1 do
   Begin
     S:= sListView1.Items.Item[i].Caption+',';
     for j := 0 to sListView1.Items.Item[i].SubItems.Count - 1 do
     S:=S+sListView1.Items.Item[i].SubItems.Strings[j]+ ',';
     SetLength(S, Length(s)-1);
     WriteLn(F,S);
     end;
     CloseFile(F);
end;

procedure TForm5.FormCreate(Sender: TObject);
begin
 if FileExists('321.txt') then
 Begin
   sl:=TStringList.Create;
   sl.Delimiter:= ',';
   AssignFile(F, '321.txt');
   Reset(F);
   while not Eof(F) do
   Begin
     ReadLn(F,S);
     sl.DelimitedText:=S;
     ListItem:=sListView1.Items.Add;
     ListItem.Caption:=sl.Strings[0];
     for I := 1 to sl.Count - 1 do
     ListItem.SubItems.Add(sl.Strings[i]);
   End;
   sl.Free;
   CloseFile(F);
 End;
end;
nefakt вне форума Ответить с цитированием
Старый 20.02.2014, 17:34   #10
nefakt
Форумчанин
 
Регистрация: 25.10.2012
Сообщений: 161
По умолчанию

Вот вписываю в ListView

А вот как он загружает обратно
nefakt вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перетащить элемент ListView в другой ListView? Paul Hindenburg Компоненты Delphi 5 26.01.2013 11:35
БД в ListView Михаил Юрьевич БД в Delphi 1 23.07.2012 22:32
MS VC++ listView Darth_Vader Visual C++ 1 12.04.2011 06:40
[C# + WPF] ListView. Узнать выделена ли строка в нём. ListView.View == GridView. Casper-SC WPF, UWP, WinRT, XAML 2 12.08.2010 19:04
ListView qwerty55 Общие вопросы Delphi 1 21.03.2010 02:46