powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / [vb6.0 ]отрезаем фрагмент файла
25 сообщений из 73, страница 1 из 3
[vb6.0 ]отрезаем фрагмент файла
    #37166676
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер.

требуется программно вырезать 5 первых символов из файла (чтоб он стал нечитаем)

но, чтобы процесс был обратим. т.е. чтоб можно было "воткнуть" символы обратно, и снова получить нормальный файл.
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37166692
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что было сделано, что не получается?
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37166866
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Открыть с прямым доступом. Поксорить нужные байты. Закрыть.
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37167220
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это ответ на вторую часть вопроса, а на первую?
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37167626
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так можно живой пример, как отрезать кусок, сохранить его рядом, скажем в файл key.inf, а затем слить воедино? Сейчас не могу привести свой, код, не дома. пробовал разделять так DOC файл. потерпел неудачу.
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37168183
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача сама себе противоречит.
Если надо ОТРЕЗАТЬ кусок - то этот кусок тоже надо сохранить, чтобы потом знать что приляпывать. А, значит, в результате получится не один, а два файла.
Предложеный мной вариант не отрезает, а модифицирует файл. Причём обратимо.
Возможны и иные варианты - скажем действительно отрезаем сколько-то (хорошо, 5 байт) от начала, и прикрепляем их к концу (или в строго определённое место в середине). Размер файла также не изменится, и модификация по-прежнему обратима.

Если при разделении потерпел неудачу - вероятнее всего, не в том режиме открывал... DOC-файлы нельзя открывать и читать как текстовый файлы, они от этого грустят и портятся.
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37168236
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так как же их открыть то, если не как текстовые?смысл такой что кусок должен лежать на сервере, и подтягиваться, в случае нормальной авторизации.
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37168502
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
open ... for binary ...
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37168906
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А в моём конкретном случае, как это будет выглядеть?

т.е. насколько я понимаю так:

Код: 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.
29.
Private Sub cmdReadValues_Click()
Dim file_name As String
Dim file_length As Long
Dim fnum As Integer
Dim bytes() As Byte
Dim txt As String
Dim key As String
Dim i As Integer

    file_name = txtFile.Text
    file_length = FileLen(file_name)

    fnum = FreeFile
    ReDim bytes( 1  To file_length)

    Open file_name For Binary As #fnum
    Get #fnum,  1 , bytes
    Close fnum

    ' ключ
    For i =  1  To  5 
        key = key & Format$(bytes(i)) & vbCrLf
    Next i

    For i =  5  To file_length
        txt = txt & Format$(bytes(i)) & vbCrLf
    Next i

    txtValues.Text = txt
End Sub

??
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37168917
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
косяк какой-то. пробую с файлом в 30 метров, выдаёт ошибку
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37171114
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никто не знает?
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37171163
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конечно нет. Ты же не написал какую и где.
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37171196
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: 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.
Dim fnum As Integer
Dim bytes() As Byte
Dim txt As String
Dim key As String
Dim i As Integer

    file_name = "c:/test.doc"
    file_length = FileLen(file_name)

    fnum = FreeFile
    ReDim bytes( 1  To file_length)

    Open file_name For Binary As #fnum
    Get #fnum,  1 , bytes
    Close fnum

    ' key
    For i =  1  To  5 
        key = key & Format$(bytes(i)) & vbCrLf
    Next i

    ' text
    For i =  5  To file_length ' <--- Вот тут у меня выпадает ошибка (file_length = 42342912)
        txt = txt & Format$(bytes(i)) & vbCrLf
    Next i
    
    Text1.Text = txt
    Text2.Text = key
End Sub
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37171220
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
For i =  5  To file_length ' <--- Вот тут у меня выпадает ошибка (file_length = 42342912)

смотрим выше:
Код: plaintext
Dim i As Integer

Читаем сообщение об ошибке: Overflow, что непонятно?
далее смотрим хелп, какое максимальное число можно засунуть в Integer и делаем выводы.
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37171270
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kalamfur,
try it
Код: 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.
' **********************************
Function cutfile$(sFN$)
Dim f%, i%, skey$
Dim b As Byte, b0 As Byte
f = FreeFile
Open sFN For Binary As #f
For i =  1  To  5 
    Get f, i, b
    skey = skey & Hex(b)
    Put f, i, b0
Next i
Close #f
cutfile = skey
Debug.Print skey
End Function

' **********************************
Sub restorefile(sFN$, skey$)
Dim f%, i%
Dim b As Byte
f = FreeFile
Open sFN For Binary As #f
For i =  1  To  5 
    b = CByte("&H" & Mid(skey,  2  * i -  1 ,  2 ))
    Put f, i, b
Next i
Close f
End Sub

...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37173191
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот так спасибо!)) то что нужно, скучающий гость )

Всем спасибо, друзья, здорово мне помогли.
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37173280
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalamfur, можно за Вас порадоваться, раз Вам сдорово помогли!!!!
Читал топик так и не понял о чём речь
>требуется программно вырезать 5 первых символов из файла (чтоб он стал нечитаем) но, чтобы процесс был обратим. т.е. чтоб >можно было "воткнуть" символы обратно, и снова получить нормальный файл
В принципе это интересно и решение есть
Подскажите о каких файлах идёт речь, Ворд?? если да то спрошу ещё, интересно - вырезать 5 первых символов из файла, то есть из содержимго файла??? и что вырезаешь и его нельзя прочитать??? Заранее спасибо
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37173416
kalamfur
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
2 Ципихович Эндрю

авторПодскажите о каких файлах идёт речь, Ворд??
если да то спрошу ещё, интересно - вырезать 5 первых символов из файла, то есть из содержимго файла???
и что вырезаешь и его нельзя прочитать??? Заранее спасибо

Речь о любом файле, структуру которого можно таким образом повредить. (Обратимо)
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37173492
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kalamfur, очень хорошо, интерисует
Скрипт от Скукотищи от вчера, 02:23 как использовать??
Есть процедура restorefile(sFN$, skey$) то ей надо давать под переменными sFN$, skey$???
Есть функция cutfile$(sFN$), но нет намёка из процедуры когда пойдёт в эту функцию???
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37173551
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эндрю. Вы код читали, или опять просите всё разжевать?
CutFile() изменит первые пять байт и вернёт последовательность, которую вы затем можете использовать в RestoreFile() в качестве ключа...
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37173570
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM, что ж семь бед один ответ ...
надо разжевать, но не сильно ...
Как мне этот код выполнить пошагово? остальное должен понять, начинать с чего?
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37174116
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну есть у меня файл, например "C:\Documents and Settings\user1\Рабочий стол\1.doc" как с ним проделать - обратимо его повредить и восстановить в дальнейшем??
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37174134
скукотища
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ципихович Эндрю,
пошагово
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
0) сделать копию файла C:\Documents and Settings\user1\Рабочий стол\1.doc
1) создать новый/открыть существующий файл Word (не C:\Documents and Settings\user1\Рабочий стол\1.doc !)
2) перейти в редактор VBA
3) в любой модуль скопировать код  отсюда  
4) в Immediate набрать:
?cutfile("C:\Documents and Settings\user1\Рабочий стол\1.doc")
нажать [Enter]
5) скопировать в безопасное место вывод функции cutfile (строка длиной десять символов)
6) попробовать открыть в Word файл C:\Documents and Settings\user1\Рабочий стол\1.doc
7) закрыть C:\Documents and Settings\user1\Рабочий стол\1.doc
8) вернуться в редактор VBA файла открытого/созданного на первом шаге
9) в Immediate набрать:
restorefile "C:\Documents and Settings\user1\Рабочий стол\1.doc", "<"ключ", сохраненный на пятом шаге>"
нажать [Enter]
10) попробовать открыть в Word файл C:\Documents and Settings\user1\Рабочий стол\1.doc
11) если файл C:\Documents and Settings\user1\Рабочий стол\1.doc не отрывается, - восстановить его из копии, созданной на нулевом шаге
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37174141
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
скукотища, ничего себе сколько операций, попробуюююююююю, спасибо
...
Рейтинг: 0 / 0
[vb6.0 ]отрезаем фрагмент файла
    #37174245
Ципихович Эндрю
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё ОК, спасибо!!!!!, чуть не удачно пункт 9 расписан у Вас, надо
restorefile "C:\Documents and Settings\user1\Рабочий стол\1.doc", "D0CF11E0A1" где "D0CF11E0A1" это ключ
меня смущает, что два раза пробовал с одним файлом, один и тот же ключ выдавал, не пробовал, а если он всем файлам один и тот же ключ выдаёт, странно что ключи в столбик два штуки подряд одинаковые, Ваден-Баден??? но это мелочи
Главное, никакой автоматизации как этим пользоваться без этой интермедии, то есть есть файл - макрос испортить файл, макрос испорченный файл исправить?? Заранее спасибо
...
Рейтинг: 0 / 0
25 сообщений из 73, страница 1 из 3
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / [vb6.0 ]отрезаем фрагмент файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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