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

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

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

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

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

Код: 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
17.03.2011, 00:01
    #37168917
kalamfur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[vb6.0 ]отрезаем фрагмент файла
косяк какой-то. пробую с файлом в 30 метров, выдаёт ошибку
...
Рейтинг: 0 / 0
17.03.2011, 22:13
    #37171114
kalamfur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[vb6.0 ]отрезаем фрагмент файла
Никто не знает?
...
Рейтинг: 0 / 0
17.03.2011, 23:13
    #37171163
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[vb6.0 ]отрезаем фрагмент файла
Конечно нет. Ты же не написал какую и где.
...
Рейтинг: 0 / 0
18.03.2011, 00:04
    #37171196
kalamfur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[vb6.0 ]отрезаем фрагмент файла
Код: 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
18.03.2011, 00:28
    #37171220
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[vb6.0 ]отрезаем фрагмент файла
Код: plaintext
1.
For i =  5  To file_length ' <--- Вот тут у меня выпадает ошибка (file_length = 42342912)

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

Читаем сообщение об ошибке: Overflow, что непонятно?
далее смотрим хелп, какое максимальное число можно засунуть в Integer и делаем выводы.
...
Рейтинг: 0 / 0
18.03.2011, 02:23
    #37171270
скукотища
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[vb6.0 ]отрезаем фрагмент файла
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
19.03.2011, 00:28
    #37173191
kalamfur
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[vb6.0 ]отрезаем фрагмент файла
Вот так спасибо!)) то что нужно, скучающий гость )

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

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

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


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