Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / C# / 4 сообщений из 4, страница 1 из 1
06.12.2010, 12:17:20
    #36996825
Игорь86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C#
Всем привет.

Подскажите, пожалуйста.

Вот кусок кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 OracleCommand comm = new OracleCommand(commsql, conn);

                OracleDataReader dr = comm.ExecuteReader();

                StreamWriter newfile = new StreamWriter(filecreate);

                if (dr.HasRows)
                {
                    
                    while (dr.Read())
                    {
                        string datadr = dr.GetString( 0 );
                        newfile.WriteLine(datadr);
                    }

                    

                    newfile.Close();
                    newfile.Dispose();
                    dr.Close();
                    dr.Dispose();
                }

                else
                {
                    this.Close();
                    this.Dispose();
                }

При чтении РИДЕРОМ идет построчная запись в файл, и когда записывается последняя строка, то курсор переходит на новую строку. Таким образом в файле есть последняя пустая строка.

Как ее удалить?
...
Рейтинг: 0 / 0
06.12.2010, 17:05:27
    #36997704
Gatman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C#
как вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
........................
StreamWriter newfile = new StreamWriter(filecreate);
if (dr.Read())
                {
                    newfile.Write(dr.GetString(0));
                    while (dr.Read())
                    {
                        newfile.WriteLine();
                        string datadr = dr.GetString(0);
                        newfile.Write(datadr);
                    }
......................
Или взять у newfile BaseStream и сделать ему SetLength на Length - NewLine.Length
...
Рейтинг: 0 / 0
06.12.2010, 17:50:54
    #36997843
Игорь86
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C#
Gatmanкак вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
........................
StreamWriter newfile = new StreamWriter(filecreate);
if (dr.Read())
                {
                    newfile.Write(dr.GetString(0));
                    while (dr.Read())
                    {
                        newfile.WriteLine();
                        string datadr = dr.GetString(0);
                        newfile.Write(datadr);
                    }
......................
Или взять у newfile BaseStream и сделать ему SetLength на Length - NewLine.Length

Спасибо, пока разбирался, примерно так же и сделал.
...
Рейтинг: 0 / 0
08.12.2010, 09:01:20
    #37001114
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
C#
Игорь86Спасибо, пока разбирался, примерно так же и сделал.

Всё ещё проще:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
using (var command = new OracleCommand(commsql, conn))
{
    var sb = new StringBuilder();
    using (var reader = command.ExecuteReader())
    {
        while (reader.Read())
            sb.AppendLine(reader.GetString(0));
        File.WriteAllText(filecreate, sb.ToString().TrimEnd(Environment.NewLine.ToCharArray()));
    }
}
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / C# / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]