Страница: 1 |
Страница: 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-сайт:
Профиль | | #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 прав, надо чуть конкретней, а то тут способов не меряно...
можно так...
'Загрузка файла в переменную
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 прав, надо чуть конкретней, а то тут способов не меряно...
можно так...
'Загрузка файла в переменную
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
можно так...
Да просто у мя получался такой расклад: файл копировался, работал нормально(любой файл), но в нём становилось на несколько байтов побольше.
Копировался естествено через Open For Binary. - по такой песенки
Номер ответа: 7
Автор ответа:
Neco
ICQ: 247906854
Вопросов: 133
Ответов: 882
Web-сайт:
Профиль | | #7
Добавлено: 19.06.05 23:50
И как? Проблему-то решил? Я имею ввиду пробил откуда беруться эти лишние байты?
SetEndOfFile никто разве не попробовал?
А принципиально различающихся способов, имхо, тока два. Первый через память - сначала читаем, потом оперируем с текстом, а потом кидаем назад; а второй, как sne сказал (тока я сам не испытывал, но приблизительно прикидываю, как это должно работать). Первый случай даёт больше возможностей для оперирования с содержимым файла, но в случае, если надо просто отрезать конец БОЛЬШОГО файла, я думаю, лучше немного попариться и выяснить как работает SetEndOfFile. 8)
Номер ответа: 8
Автор ответа:
magish
Вопросов: 47
Ответов: 47
Профиль | | #8
Добавлено: 21.06.05 01:48
Дык я этим и воспользовался... Спасибо sne...