Страница: 1 |
Вопрос: WriteLine & ReadLine | Добавлено: 27.08.12 18:36 |
Автор вопроса: ![]() |
Всем привет. Давно на форуме ничего не писал, вот наконец-то появилась проблема.
Решил для интереса написать одну прогу на vb 2010. Она должна построчно считывать данные из txt файлика, а при необходимости их туда вписывать (брать текст от Combobox1.GetItemText(Combobox1.Items.Item(i))
и последовательно дописывать в файлик, предварительно его очистив.) Вот существующий код: 1) Чтение Dim file1 As New FileInfo(Application.StartupPath & "\saved_web.txt")
If file1.Exists Then Dim reader As New StreamReader(Application.StartupPath & "\saved_web.txt") Do While reader.Peek() <> -1 WebMap.ToolStripComboBox1.Items.Add(reader.ReadLine) Loop Else Exit Sub End If 2) запись WebMap.ToolStripComboBox1.Items.Clear()
For i As Integer = 0 To Properties.ComboBox1.Items.Count() - 1 WebMap.ToolStripComboBox1.Items.Add(Properties.ComboBox1.Items.Item(i)) Properties.SaveToFile(Application.StartupPath & "\saved_web.txt", Properties.ComboBox1.GetItemText(Properties.ComboBox1.Items.Item(i))) Next Sub SaveToFile(ByVal fileName As String, ByVal data As String)
Dim stream As New System.IO.FileStream(fileName, FileMode.OpenOrCreate) Dim sw As New System.IO.StreamWriter(stream) sw.WriteLine(data) If sw.AutoFlush = False Then sw.Flush() End If sw.Close() End Sub В принципе работает, только при сохранении (перезаписи) вижу что-то типа maps.google.ru u maps.google.ru maps.yandex.ru там где u должна быть нигма, там где гугль 2 раз сверху рамблер. Что не так? |
Ответы | Всего ответов: 10 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #1 | Добавлено: 27.08.12 22:53 |
Что не так?
да все не так.. для работы с текстом кури TextReader/TextWriter + using |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #2 | Добавлено: 27.08.12 22:55 |
либо:
File.ReadAllText File.ReadAllLines для чтения и аналоги этих методов для записи |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #3 | Добавлено: 27.08.12 22:59 |
Кроме того ToolStripItemCollection имеет метод AddRange.. что в совокупности с ReadAllLines избавит тебя от бестолковых циклов |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 58 Ответов: 4255 ![]() |
Профиль | Цитата | #4 | Добавлено: 27.08.12 23:15 |
<telepat_mode>
У тебя проблемы с кодировкой (не видит русского текста) </telepat_mode> |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 6 |
Профиль | Цитата | #5 | Добавлено: 28.08.12 02:12 |
не FileMode.OpenOrCreate, а FileMode.Create + FileAccess.ReadWrite http://msdn.microsoft.com/en-us/library/aa328807(v=VS.71).aspx ps. а если используешь OpenOrCreate, юзай Stream.SetLength(0) |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 3 |
Профиль | Цитата | #6 | Добавлено: 28.08.12 22:31 |
Dim stream As New System.IO.FileStream(fileName, FileMode.Create, FileAccess.Write) 'FileMode.OpenOrCreate) ' чі так ' FileMode.OpenOrCreate ' stream.SetLength(0) Dim sw As New System.IO.StreamWriter(stream) sw.WriteLine(data) |
Номер ответа: 7 Автор ответа: ![]() ![]() ICQ: 357911808 Вопросов: 118 Ответов: 1340 |
Web-сайт: Профиль | Цитата | #7 | Добавлено: 28.08.12 23:17 |
ragulius пишет:
не FileMode.OpenOrCreate, а FileMode.Create + FileAccess.ReadWrite http://msdn.microsoft.com/en-us/library/aa328807(v=VS.71).aspx ps. а если используешь OpenOrCreate, юзай Stream.SetLength(0) не думаю что есть особая разница перезаписать или открыть и очистить файл. Eros, спасибо. А кодировка у меня 1251. |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 1 Ответов: 7 |
Профиль | Цитата | #8 | Добавлено: 30.08.12 13:55 |
не думаю что есть особая разница перезаписать или открыть и очистить файл.
А чистится ли файл методом Flush\Autoflush; либо открытием в режиме OpenOrCreate? |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 0 Ответов: 6 |
Профиль | Цитата | #9 | Добавлено: 02.09.12 23:59 |
БУГАГА |
Номер ответа: 10 Автор ответа: ![]() ![]() ICQ: 357911808 Вопросов: 118 Ответов: 1340 |
Web-сайт: Профиль | Цитата | #10 | Добавлено: 05.09.12 15:19 |
петросян пишет:
А чистится ли файл методом Flush\Autoflush; либо открытием в режиме OpenOrCreate? Гугль подсказывает, что чистится файл так же WriteLine "". |
Страница: 1 |
|