Пихание файлов(папки) в файлы. Например *.dat

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Пихание файлов(папки) в файлы. Например *.dat

Сообщение neic » 20.06.2005 (Пн) 0:25

Как загнать файлы и папки в такие файлы как *.dat ?

Желательно кусок кода запиваем и читаем!

d3drm
Астролог
Астролог
Аватара пользователя
 
Сообщения: 2873
Зарегистрирован: 29.05.2002 (Ср) 23:34
Откуда: МаСКвА

Сообщение d3drm » 20.06.2005 (Пн) 0:30

открываешь бинарно файлы, считываешь в массив типа byte, затем записываешь все полученное в нужный тебе файл. Ну а считывание - то же самое, но в обратном порядке, главное не забыть сколько байт в каждом файле.
ХЎ

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 20.06.2005 (Пн) 3:27

d3drm писал(а):открываешь бинарно файлы, считываешь в массив типа byte, затем записываешь все полученное в нужный тебе файл. Ну а считывание - то же самое, но в обратном порядке, главное не забыть сколько байт в каждом файле.

А как считать в массив?
Удачи!
С уважением, Алексадр.

_Мика_
Гуру
Гуру
 
Сообщения: 1459
Зарегистрирован: 24.10.2003 (Пт) 15:05
Откуда: г. Москва, м.Речной вокзал

Сообщение _Мика_ » 20.06.2005 (Пн) 10:41

Надо делать разделители :)
-Папа, а правда, что форумы делают людей дибилами?
-гы гы гы, сынок, лол!

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 20.06.2005 (Пн) 12:44

d3drm писал(а):открываешь бинарно файлы, считываешь в массив типа byte, затем записываешь все полученное в нужный тебе файл. Ну а считывание - то же самое, но в обратном порядке, главное не забыть сколько байт в каждом файле.

Чё-то не понял твою мысль! Ты хоть опиши в коде

a_mayor
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 02.06.2005 (Чт) 21:44

Сообщение a_mayor » 20.06.2005 (Пн) 14:21

Ну, как говорится, надо с чего-то начать:

Код: Выделить всё

Private Sub Command1_Click()
    Dim szDir As String
    Dim bBuffer As Byte
    Dim szFile As String
    Dim szFolder As String
    Dim lCount As Long
   
   
   
    szFile = "~kidding.dat"
    szFolder = "P:\MyDocs\icons\"
   
   
   
    szDir = Dir(szFolder, vbDirectory)
   
    Open szFolder & szFile For Binary As #1
        While szDir <> ""
            If szDir <> "" And szDir <> "." And szDir <> ".." And szDir <> szFile Then
                Open szFolder & szDir For Binary As #2
                    While Not EOF(2)
                        Get #2, , bBuffer
                       
                        Put #1, , bBuffer
                    Wend
                Close #2
            End If
           
            szDir = Dir
        Wend
    Close #1
End Sub

SSecurity
Служба безопасности
Аватара пользователя
 
Сообщения: 1283
Зарегистрирован: 19.08.2003 (Вт) 1:11
Откуда: Россия, Мурманск

Сообщение SSecurity » 22.06.2005 (Ср) 20:41

_Мика_ писал(а):Надо делать разделители :)


Идея интересная, но вот я подумал а если файл бинарный, есть вероятность что совпадут данные в файле с твоим разделителем, и что тогда?

Может куда эффективнее использовать "заголовок файла", до начала самого бинарного массива идет инфа о названии и размере хотя бы :?: :?:

Как вариант можно рассмотреть 2 файла: *.дат и *.inf
Программист - это маленький Бог, а все его ошибки - это самостоятельные творения:)
Так задумано:)

neic
Жираф
Жираф
 
Сообщения: 492
Зарегистрирован: 13.02.2005 (Вс) 23:44
Откуда: Сланцы

Сообщение neic » 22.06.2005 (Ср) 21:52

a_mayor писал(а):Ну, как говорится, надо с чего-то начать:

Код: Выделить всё
Private Sub Command1_Click()
    Dim szDir As String
    Dim bBuffer As Byte
    Dim szFile As String
    Dim szFolder As String
    Dim lCount As Long
   
   
   
    szFile = "~kidding.dat"
    szFolder = "P:\MyDocs\icons"
   
   
   
    szDir = Dir(szFolder, vbDirectory)
   
    Open szFolder & szFile For Binary As #1
        While szDir <> ""
            If szDir <> "" And szDir <> "." And szDir <> ".." And szDir <> szFile Then
                Open szFolder & szDir For Binary As #2
                    While Not EOF(2)
                        Get #2, , bBuffer
                       
                        Put #1, , bBuffer
                    Wend
                Close #2
            End If
           
            szDir = Dir
        Wend
    Close #1
End Sub


А про окментировать можно, а то в неткорые строчки не понимаю

a_mayor
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 02.06.2005 (Чт) 21:44

Сообщение a_mayor » 23.06.2005 (Чт) 9:25

Код: Выделить всё

Private Sub Command1_Click()
    Dim szDir As String
    Dim bBuffer As Byte
    Dim szFile As String
    Dim szFolder As String
    Dim lCount As Long
   
   
   
    szFile = "~kidding.dat"
    szFolder = "P:\MyDocs\icons\"     'исходная папка
   
   
   
    'открываем папку для чтения
    szDir = Dir(szFolder, vbDirectory)
   
    Open szFolder & szFile For Binary As #1 'открываем файл .дат для ввода в него   

        While szDir <> ""     'цикл чтения папки
            If szDir <> "" And szDir <> "." And szDir <> ".." And szDir <> szFile Then     'проверка, что это файл, а не папка и, что это не .дат файл
                Open szFolder & szDir For Binary As #2     'открываем файл для чтения из него
                    While Not EOF(2)     'цикл чтения файла
                        Get #2, , bBuffer     'считываем в буфер
                       
                        Put #1, , bBuffer     'из буфера в файл .дат
                    Wend
                Close #2   'читаемый файл закрываем, при этом .дат файл открыт для дальнейшего ввода
            End If
           
            'считываем след. файл из папки
            szDir = Dir
        Wend
    Close #1
End Sub

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.06.2005 (Пт) 0:18

Sasha_karasov писал(а):А как считать в массив?

Оператором Get
Изображение

Sasha_karasov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 436
Зарегистрирован: 03.03.2005 (Чт) 19:38
Откуда: ua.dp

Сообщение Sasha_karasov » 24.06.2005 (Пт) 4:38

tyomitch писал(а):
Sasha_karasov писал(а):А как считать в массив?

Оператором Get
Я бумал там хитра ! :roll:
Удачи!
С уважением, Алексадр.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 24.06.2005 (Пт) 7:58

Sasha_karasov писал(а):Я бумал там хитра ! :roll:

"Научитесь говорить сначала по-русски" (с) Киркоров
:twisted:
Изображение

a_mayor
Новичок
Новичок
 
Сообщения: 41
Зарегистрирован: 02.06.2005 (Чт) 21:44

Сообщение a_mayor » 24.06.2005 (Пт) 15:37

Sasha_karasov писал(а):Я бумал там хитра ! :roll:


Хитрая, однако, фраза. Это русский++.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 162

    TopList