Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] listview и openfiledialog

Ответить
Настройки темы
.NET - [решено] listview и openfiledialog

Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Цитировать


Подскажите как заполнить listview из файла txt если он многоколоночный.

-------
rcnow.ru


Отправлено: 20:26, 08-11-2011

 

В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Ну я так понимаю заполнить ListView как вы знаете?

Цитата DAmlex:
txt если он многоколоночный. »
ну тут тоже проблем нету в принципе.
Допустим в txt файле у вас много строк структуры типа : << "1колонка" "2колонка" "3колонка">>, делаем цикл (код C#):
PHP код: Выделить весь код

StreamReader sr = new StreamReader "1.txt" );
                        while (!
sr.EndOfStream)
                        {
                                
string row sr.ReadLine ( );
                                
string[] columns row.Split ( new char[] { ' ' } );
                                foreach (
string col in columns)
                                {
                                        
listView1.Items.Add col );
                                }
                        } 

Это в простейшем случае. Все зависит от файла.

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}

Это сообщение посчитали полезным следующие участники:

Отправлено: 21:46, 08-11-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Цитировать


Так я уже пробовал он заполняет только первую колонку а остальные колонки остаются не заполненные .
Вот как я сохраняю
PHP код: Выделить весь код

saveFileDialog1.ShowDialog();
            
StreamWriter save = new StreamWriter(saveFileDialog1.FileNametrueSystem.Text.Encoding.Default);
           for (
int i 0<listview1.Items.Counti++)
            {
                for (
int l=0<listview1.Items[i].SubItems.Count;l++)
                
save.WriteLine(Convert.ToString(listview1.Items[i].SubItems[l]).Replace("ListViewSubItem:",null).Replace("{","").Replace("}","").Trim());
                                
            }
            
save.Close(); 

Таким образом сохраняется файл вида:
PHP код: Выделить весь код

//1 запись 


12.09.2000
13:46:44
15:45:00
PHP код: Выделить весь код

//2 запись 


14.09.2000
12:46:44
16:11:55

Где 12.09.2000 - Первая колонка; 13:46:44 - вторая колонка первой записи;15:45:00 - третья колонка первой записи.(Вторая и третья запись это SubItems первой колонки)
Пробовал при сохранении формировать строку StreamBuilder все тоже самое.Тогда сохраняется файл вида
PHP код: Выделить весь код

//1 запись 


12.09.2000 13:46:44 15:45:00
PHP код: Выделить весь код

//2 запись 


14.09.2000 12:46:44 16:11:55

-------
rcnow.ru


Отправлено: 13:19, 09-11-2011 | #3


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


DAmlex, Прикрепите пожалуйста сохраненный файл. Разберемся

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 13:37, 09-11-2011 | #4


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Цитировать


Вложения
Тип файла: txt fish.txt
(74 байт, 4 просмотров)
Тип файла: txt fish_stroka.txt
(62 байт, 5 просмотров)

Вот файл сохранения.Третий день мучаюсь все никак.
fish_stroka.txt сохранение с использование StringBuilder

-------
rcnow.ru


Отправлено: 14:52, 09-11-2011 | #5


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


DAmlex, Первый предложенный код работает. Вот переделал, попробуйте его:
Код: Выделить весь код
namespace ConsoleApplication1
{
        class Program
        {
                static void Main ( string[] args )
                {
                        StreamReader sr = new StreamReader ( "2.txt" ); // 2.txt это ваш fish_stroka.txt
                        do
                        {
                                string row = sr.ReadLine ( ); // читаем строку
                                row = row.TrimEnd ( new char[] { ' ' } ); // удаляем пробелы в конце строки
                                string[] cols = row.Split(new char[] { ' ' }); // разбиваем
                                foreach (string col in cols)
                                {
                                        Console.WriteLine ( col ); // суммарно в циклах есть все колонки и строки
                                }
                        }
                        while (!sr.EndOfStream);
                        sr.Close ( );
                        sr.Dispose ( );
                        Console.ReadKey ( );
                }
        }
}

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:08, 09-11-2011 | #6


Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


Цитата LilLoco:
row = row.TrimEnd ( new char[] { ' ' } ); »
А почему не просто TrimEnd(' '); ? Одинарные кавычки и так укажут, что это char, а не string.

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:36, 10-11-2011 | #7


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата Delirium:
А почему не просто TrimEnd(' '); ? »

Честно, наверное просто привык уже так Вдруг нужно будет добавить еще какие - либо символы для удаления, будет проще дописать...

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}


Отправлено: 07:30, 10-11-2011 | #8


Новый участник


Сообщения: 13
Благодарности: 0

Профиль | Цитировать


Изображения
Тип файла: jpg table_add.jpg
(40.3 Kb, 5 просмотров)
Тип файла: jpg table_load.jpg
(37.6 Kb, 5 просмотров)

Так тоже делал вот
PHP код: Выделить весь код

StreamReader open = new StreamReader(Convert.ToString(openFileDialog1.FileName),System.Text.Encoding.Default);

            while (!
open.EndOfStream)
            {
                
string row open.ReadLine();
                
string[] columns row.Split(new char[] { ' ' });
                foreach (
string col in columns)
                {
                    
listview1.Items.Add(col); //Что тут должно быть написано чтобы заполнить SubItems; listview1.Items.Add().SubItems(?????);
                
}
            }  
        } 

Предлагаю взглянуть на скрины
table_add - Добавление данных через Form2
table_load - Так он заполняет из файла

-------
rcnow.ru


Отправлено: 12:57, 10-11-2011 | #9


В Поисках Истины


Сообщения: 802
Благодарности: 135

Профиль | Отправить PM | Цитировать


Цитата LilLoco:
Ну я так понимаю заполнить ListView как вы знаете? »
А вы ведь даже не ответили, а теперь спрашиваете как заполнять

Цитата DAmlex:
//Что тут должно быть написано чтобы заполнить SubItems; listview1.Items.Add().SubItems(?????); »
Набросал, возможны ошибки, но принцип должен быть ясен.

Код: Выделить весь код
StreamReader sr = new StreamReader ( "2.txt" ); // 2.txt это ваш fish_stroka.txt
                        do
                        {
                                string row = sr.ReadLine ( ); // читаем строку
                                row = row.TrimEnd ( new char[] { ' ' } ); // удаляем пробелы в конце строки
                                string[] cols = row.Split ( new char[] { ' ' } ); // разбиваем
                                ListViewItem itm = new ListViewItem ( ); // итем для листвью
                                itm.Text = cols[0]; // текст итема
                                for (int i = 1; i < cols.Length; i++ )
                                {
                                        itm.SubItems.Add ( cols[i] ); // добавляем дополнительную информацию в колонки
                                }
                                listView1.Items.Add ( itm ); // сам итем добавляем
                        }
                        while (!sr.EndOfStream);
                        sr.Close ( );
                        sr.Dispose ( );

-------
foreach(short w in new short[] {73,3,79,83,90,79,78,69}){
Console.Write((char)w);
}

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:11, 10-11-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » .NET - [решено] listview и openfiledialog

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Интерфейс - [решено] OpenFileDialog - Как запомнить сортировку для папки "Недавние документы"? Siller Microsoft Windows 2000/XP 7 06-04-2011 09:19
Delphi - Прокрутка в ListView напарНИК Программирование и базы данных 0 24-01-2011 19:34
Разное - ListView в VB6 Synthetyic_Man Программирование и базы данных 1 11-05-2010 05:52
Win32 API - Текст в ListView и проч. pva Программирование и базы данных 1 07-11-2007 12:36
ListView редактирование столбцов lesco Программирование и базы данных 2 11-04-2003 22:23




 
Переход