Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Строки Добавлено: 16.04.08 19:11  

Автор вопроса:  mrphn
Файл содержит строки допустим по 90 байт (+4 описание строки)
Как к примеру удалить 4 строку в файле и соответственно все последующие строки сместить на одну к началу файла.
Visual Basic 2008 Express Edition

Если можно пример кода. Буду весьма благодарен.

Ответить

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

Номер ответа: 1
Автор ответа:
 Александр



Вопросов: 20
Ответов: 44
 Профиль | | #1 Добавлено: 16.04.08 22:13
Нужно открыть файл в программе и обрабатывать как массив, сделать изменения, потом опять сохранить в этот файл. Если например хочешь удалить четвертую строку:
stroka(4).resettext
потом просто перебираешь весь остаток файла:

for i = "начальная строка" to "конечная строка"
stroka(i) = stroka(i+1)
next

если не разберешься, напишу пример!

Ответить

Номер ответа: 2
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #2
Добавлено: 17.04.08 01:14
С массивами эт все лажа. На ВБ6 могу написать пример, как лучше сделать, на дотнете - вряд ли, не люблю его.

Ответить

Номер ответа: 3
Автор ответа:
 mrphn



Вопросов: 5
Ответов: 12
 Профиль | | #3 Добавлено: 18.04.08 00:04
Да, будет круто если поделитесь примерами, но еще одно дополнение доступ к файлу - бинарный

Ответить

Номер ответа: 4
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #4
Добавлено: 18.04.08 08:09
Эт не проблема если длина строк стабильно 94В.

Ответить

Номер ответа: 5
Автор ответа:
 mrphn



Вопросов: 5
Ответов: 12
 Профиль | | #5 Добавлено: 18.04.08 13:08
стабильно)

Ответить

Номер ответа: 6
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #6
Добавлено: 18.04.08 15:59
    Const FILE As String = "c:\test1.txt"  ' имя файла
    Const LENGTH As Integer = 94 + 2       ' строка + vbCrLf
    Const SKIP_LINE As Integer = 4         ' строка, которую пропускаем

    ' <для тестинга>
    'Open FILE For Output As #1
    'For i = 1 To 5
    '    Print #1, String(94, CStr(i))
    'Next
    'Close
    ' </для тестинга>

    Open FILE For Binary As #1
    Dim FirstPart As String
    Dim LastPart As String
    ' читаем из файла все до строки SKIP_LINE
    FirstPart = Space(LENGTH * (SKIP_LINE - 1))
    Get #1, , FirstPart
    ' читаем все после строки SKIP_LINE
    Seek #1, LENGTH * (SKIP_LINE) + 1
    LastPart = Space(LOF(1) - LENGTH * (SKIP_LINE))
    Get #1, , LastPart
    Close
    ' удаляем файл, ибо при бинарном режиме бейсик
    ' не затрет последнюю строку и не изменит размер файла
    Kill FILE
    Open FILE For Binary As #1
    ' пишем первую часть
    Put #1, , FirstPart
    ' пишем вторуую часть
    Put #1, , LastPart
    Close
    End

Ответить

Номер ответа: 7
Автор ответа:
 J. Smith



ICQ: ненавижу 

Вопросов: 40
Ответов: 477
 Web-сайт: Не хочу ломать голову, если её уже сломал кто-то другой.
 Профиль | | #7
Добавлено: 18.04.08 17:09
Красиво. И на .Net это пойдёт также

Завидую, этож надо иметь свободное время в рабочее время :)

Кстати,,, ладно я, а тыто что повис на ВБ6 или это не единственный твой язык

Ответить

Номер ответа: 8
Автор ответа:
 



Администратор

ICQ: 278109632 

Вопросов: 42
Ответов: 3949
 Web-сайт: domkratt.com
 Профиль | | #8
Добавлено: 18.04.08 17:46
Вообще, далеко не единственный =) К тому же пишу компилятор бейсика новый щас.
Дотнет не люблю из-за классов. Так и работы для мозга не остается, когда можно всюду готовые классы подъюзать. А время на подобные примеры тратится максимум 4 минуты =)

Сорри за оффтоп, спросили - ответил.

Ответить

Номер ответа: 9
Автор ответа:
 mrphn



Вопросов: 5
Ответов: 12
 Профиль | | #9 Добавлено: 21.04.08 23:00
Спасибо за пример! Шикарно!

Ответить

Страница: 1 |

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



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