Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: "Отрезать" n... число байт из файла Добавлено: 18.06.05 17:46  

Автор вопроса:  magish
Помогите отрезать n - число байт из файла. Очень надо.

Ответить

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

Номер ответа: 1
Автор ответа:
 ArtBase



ICQ: 55593017 

Вопросов: 23
Ответов: 76
 Профиль | | #1 Добавлено: 18.06.05 20:53
конкретней скажи, что за файл...текстовый, графический?
откуда отрезать? сначала? с конца? ...

Ответить

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



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 18.06.05 22:29
SetEndOfFile

Ответить

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



Вопросов: 47
Ответов: 47
 Профиль | | #3 Добавлено: 18.06.05 23:12
конкретней скажи, что за файл...текстовый, графический?
откуда отрезать? сначала? с конца? ...


Файл любой...

Ответить

Номер ответа: 4
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 18.06.05 23:24
Блин ArtBase прав, надо чуть конкретней, а то тут способов не меряно...

можно так...

Public Function LoadTextFile(Path As String, sByte As Long, poByte As Long) As String
'Загрузка файла в переменную
On Error GoTo e
 Dim l As Long
 Dim s As String
 n = FreeFile
 Open Path For Binary As #n
    If poByte = 0 Then
        l = LOF(n)
    Else
        l = poByte
    End If
    If sByte = 0 Then sByte = 1
 s = String(l, vbNullChar)
 Get n, sByte, s
 Close #n
 LoadTextFile = s
 Exit Function
e:
 LoadTextFile = ""
End Function

Ответить

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


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 18.06.05 23:26
Блин ArtBase прав, надо чуть конкретней, а то тут способов не меряно...

можно так...

Public Function LoadTextFile(Path As String, sByte As Long, poByte As Long) As String
'Загрузка файла в переменную
On Error GoTo e
 Dim l As Long
 Dim s As String
 n = FreeFile
 Open Path For Binary As #n
    If poByte = 0 Then
        l = LOF(n)
    Else
        l = poByte
    End If
    If sByte = 0 Then sByte = 1
 s = String(l, vbNullChar)
 Get n, sByte, s
 Close #n
 LoadTextFile = s
 Exit Function
e:
 LoadTextFile = ""
End Function


s$ = LoadTextFile ("C:\File",50,100) ... c 50 байта до 100.

А можно и так
s$ = LoadTextFile ("C:\File",0,0)
s$ = mid(s$,50,100)

+

всяике Left, Right ... итп...

Ответить

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



Вопросов: 47
Ответов: 47
 Профиль | | #6 Добавлено: 18.06.05 23:29
Блин ArtBase прав, надо чуть конкретней, а то тут способов не меряно...

можно так...


Да просто у мя получался такой расклад: файл копировался, работал нормально(любой файл), но в нём становилось на несколько байтов побольше.

Копировался естествено через Open For Binary. - по такой песенки =)

Ответить

Номер ответа: 7
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #7
Добавлено: 19.06.05 23:50
И как? Проблему-то решил? Я имею ввиду пробил откуда беруться эти лишние байты?

SetEndOfFile никто разве не попробовал?

А принципиально различающихся способов, имхо, тока два. Первый через память - сначала читаем, потом оперируем с текстом, а потом кидаем назад; а второй, как sne сказал (тока я сам не испытывал, но приблизительно прикидываю, как это должно работать). Первый случай даёт больше возможностей для оперирования с содержимым файла, но в случае, если надо просто отрезать конец БОЛЬШОГО файла, я думаю, лучше немного попариться и выяснить как работает SetEndOfFile. 8)

Ответить

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



Вопросов: 47
Ответов: 47
 Профиль | | #8 Добавлено: 21.06.05 01:48
SetEndOfFile

Дык я этим и воспользовался... Спасибо sne...

Ответить

Страница: 1 |

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



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