Страница: 1 |
Страница: 1 |
Вопрос: StreamReader
Добавлено: 11.07.08 02:39
Автор вопроса: андрей | ICQ: 592601042
Подскажите пожалуйста как записать в текстовый файл строку, чтобы ранее записанная сохранялась.
Public Sub istor()
Dim str As New IO.StreamWriter_(Application.StartupPath & "\История.txt", False)
str.Write(LbIst.Text)
' LbIst - textbox из формы
str.Close()
End Sub
так прописывается новая строка вместо старой.
Я понимаю, что я получаю то что прошу но как попросить чтобы получить то что нужно ???
Буду благодарен за помощь
Ответы
Всего ответов: 10
Номер ответа: 1
Автор ответа:
Алексей
black admin
ICQ: 261779681
Вопросов: 87
Ответов: 633
Web-сайт:
Профиль | | #1
Добавлено: 11.07.08 02:53
Public Sub istor()
 im str As New IO.StreamWriter(Application.StartupPath & "\История.txt", True)
str.Write(LbIst.Text)
' LbIst - textbox из формы
str.Close()
End Sub
Номер ответа: 2
Автор ответа:
андрей
ICQ: 592601042
Вопросов: 12
Ответов: 15
Профиль | | #2
Добавлено: 11.07.08 16:08
Спасибо Алексей.
Я немного не полный задал вопрос.
 im str As New IO.StreamWriter(Application.StartupPath & "\История.txt", True)- в этом случае новая информация прописывается в продолжение старой строки,а мне нужно чтобы с новой строки и желательно чтобы она становилась текущей(верхней)
Номер ответа: 3
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #3
Добавлено: 11.07.08 18:54
желательно - это не обязательно?
Можно ведь элементарно записать символ номер 10, за ним 13ый, а потом уже текст. Разве не логично?)
Номер ответа: 4
Автор ответа:
андрей
ICQ: 592601042
Вопросов: 12
Ответов: 15
Профиль | | #4
Добавлено: 11.07.08 19:06
Dim str As New IO.StreamWriter(Application.StartupPath & "\История.txt", True)
str.[b]WriteLine[/b]LbIst.Text)
' LbIst - textbox из формы
str.Close()
End Sub
Теперь строки записываются одна под другой, т.е. новая под существующими, а вот в обратном порядке как сделать ????
Номер ответа: 5
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #5
Добавлено: 11.07.08 19:58
Значит все данные сдвинутся на кол-во байт занимаемое строкой
следовательно надо прочитать весь файл, добавить строку в начале и записать обратно в файл
Номер ответа: 6
Автор ответа:
андрей
ICQ: 592601042
Вопросов: 12
Ответов: 15
Профиль | | #6
Добавлено: 11.07.08 20:18
Можно еще каждый раз после добавления сортировать по дате и перезаписывать...
Я надеялся что есть более простой способ..
Спасибо .
Номер ответа: 7
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #7
Добавлено: 11.07.08 21:38
В NET предусмотрены средства логирования, почему бы не воспользоваться ими?
using System.Diagnostics;
using System.Reflection;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string source = Assembly.GetExecutingAssembly().GetName().Name;
if (!EventLog.SourceExists(source))
EventLog.CreateEventSource(source, "My application log"
EventLog.WriteEntry(source, "1-st record (information)", EventLogEntryType.Information);
EventLog.WriteEntry(source, "2-nd record (warning)", EventLogEntryType.Warning);
}
}
}
Кроме того, начиная с версии FW 3.0 есть System.IO.Log, с помощью него можно легко организовать логирование и подобные задачи (history & etc)
Номер ответа: 8
Автор ответа:
андрей
ICQ: 592601042
Вопросов: 12
Ответов: 15
Профиль | | #8
Добавлено: 11.07.08 23:22
Полистал MSDN на предмет EventLog и System.IO.Log вещи несомненно полезные, но к сожалению с моим английским остаются загадкой - попробую полистать умные книжки....
И вообще, на крайняк существует ScrollBar, чтобы докопаться до того чего хочешь..
Номер ответа: 9
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #9
Добавлено: 12.07.08 00:18
да ладно... отродясь логи сверху вниз писались) и ничего, всё хорошо
Номер ответа: 10
Автор ответа:
ника
Вопросов: 1
Ответов: 111
Профиль | | #10
Добавлено: 12.07.08 07:59
Эти логи можно легко просмотреть через стандартный LogViewer в "Управлении компьютером" - "Просмотр событий"