Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 | 2 |

 

  Вопрос: Помогите с чтением из TXT Добавлено: 29.07.08 16:40  

Автор вопроса:  Tolya

Ответить

  Ответы Всего ответов: 26  

Номер ответа: 16
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #16 Добавлено: 30.07.08 19:34
#10:
Я думаю уже хватит.

#12:
Я так не думаю, просто пытаюсь порядок навести.


У кого тут напряг с чтением?

Нафига надо навичку забивать голову побайтовым чтением файла?

Нафига? Тебе например нинафига, а кому-то эти советы могут помочь.

И кстати про побайтное чтение речь не шла, я например вел речь про "килобайтное" - разницу видишь?

Я понимаю, тебе как програмеру хочется показать свою смекалку и ум,

О чем ты? Никакая смекалка не нужна для того чтоб оптимально найти начало последней строки в файле.

но может надо писать так, чтоб помагало научится человеку

А то что мы написали не поможет разве?

а не попонтоватся тебе?

Не говори ерунду :)

Если бы я хотел попонтоваться, я бы рассказал как можно выполнить нормализацию базы данных википедии (больше двух гигабайт) из формата XML в формат SQL Server, и сколько времени это занимает.

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

Это форум где помогают решить проблемы людей, а не решают их в полном объеме (иначе это бы называлось консалтингом и стоило бы очень дорого)

Ответить

Номер ответа: 17
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #17
Добавлено: 31.07.08 00:27
Бренд смотри

Open "c:\text.txt" For Input As 1
Do While Not EOF(1)
  Line Input #1, txtstroka
Loop
Close #1

вот код Arseny он идеален для начиющего и для опытного прогера.
Да канешно мы лопатим весь файл.и если файл будет большым то прога подвиснет и не будет отвичать но мы можем дописать dovensts и всё бдет ок.время не уменшитса но прога не будет висеть))))
в конце мы получим то что требуетса.последнюю строку

вот етот код
   ;Dim tmpStr As String
    ;Dim Arry() As String

    Open "license.txt" For Input Access Read As 1
        tmpStr = Input(LOF(1), 1)
    Close

    If Right$(tmpStr, 1) = vbLf Then tmpStr = Left$(tmpStr, Len(tmpStr) - 2)



с Кодом Серёги лень розбиратса уж очень большой.
может и быстрее работает чем указаный мною идеальный)))

идеальный он потому что там пару строчек)))
    Arry = Split(tmpStr, vbCrLf)
    MsgBox Arry(UBound(Arry))

чуть не идеалне если файл будет большой хана нашей проге.

нащот как єто зделать в .нет беспонятия.может там можно как то похитрому.

Ответить

Номер ответа: 18
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #18
Добавлено: 31.07.08 00:30
Нафига? Тебе например нинафига, а кому-то эти советы могут помочь.

согласен когда я еще не был зареган на этом форуме.я отцюда выкачивал 100 страниц форума.здесь все детально обсуждалось велись дискусии.короче очень интересно.
а ща на форуме остался один умный человек(не знаю где остальный) и то ему упрекают.

Все норм Артём ;)

Ответить

Номер ответа: 19
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #19
Добавлено: 31.07.08 01:45
и то ему упрекают
какие упреки? флудим потихоньку. Все.

Ответить

Номер ответа: 20
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #20 Добавлено: 31.07.08 08:23
Сори, ввожу новичков в заблуждение.

Если файл будет очень большой, то эта конструкция лопнет.
If Right$(tmpStr, 1) = vbLf Then tmpStr = Left$(tmpStr, Len(tmpStr) - 2)

В таких случаях действительно быстрее всего читать бинарно с конца файла.

Ответить

Номер ответа: 21
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #21
Добавлено: 31.07.08 13:19
да канешно кажетса такое простое задания но много нюансов.
вот например а если файл будет 500 метров и всё в одну строку это же будет ппц.

думаю нада будет с конца по одному символу вытаскивать.смотреть если равно vbLf и следущий равен vbcr тогда вот откуда нам нада читать.

Ответить

Номер ответа: 22
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #22 Добавлено: 31.07.08 14:12
это же будет ппц

Настоящий пипец начнется если ему свободной оперативки нехватит :)

Двигаясь от конца к началу файла читаем байты и если считанный байт не vbLf, то прибавляем его в начало считанной строки, иначе прекращаем чтение.

Туева хуча таких нюансов, заметь, автор об объеме файла умолчал, в моей практике был случай когда в одну строковую переменную файл в 200 метров ложился, но это естессно не ТХТ-шник был, а урезанный дистриб офиса.

Ответить

Номер ответа: 23
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #23
Добавлено: 31.07.08 14:59
серавно я не знаю что делать если файл будет большой читать то мы будем.но вот я не рекомендую так вот сразу если не vbLf добавлять куда то єтот символ.они загрузят всю оперативку прогама начнет работать медленей а потом и вовсе заглохнет.

вот опка что так
ищем символ vblf от конца если нашли смотрим какой он по пордку и уже от него идём до конца закидывае все это куда то...

все впираетса в размере файла.

Ответить

Номер ответа: 24
Автор ответа:
 Artyom



Разработчик

Вопросов: 130
Ответов: 6602
 Профиль | | #24 Добавлено: 31.07.08 17:21
Читать с конца не по одному символу а блоками, иначе чтение будет неоптимально идти.

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

Ответить

Номер ответа: 25
Автор ответа:
 Winand



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #25
Добавлено: 31.07.08 20:31
да уж, по байту читать - это плохо. Когда делал копирование файлов убедился в этом после экспериментов с блоками)

Ответить

Номер ответа: 26
Автор ответа:
 D o c a l



ICQ: 408802757 

Вопросов: 76
Ответов: 985
 Web-сайт: www.doc-source.pp.net.ua/
 Профиль | | #26
Добавлено: 31.07.08 22:54
вообщем достачно муторное дело но так как автор не появляетса можна дальше не обсуждать нада будет кому то зделает вариантов много и каждій под какой то отдельный случай пока универсального не предумал.
что бы учесть все возможные варианты

Ответить

Страница: 1 | 2 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам