Страницы: 1
RSS
Может ли excel работать с бинарным файлом?
 
Здравствуйте уважаемые форумчане. Подскажите пожалуйста Может ли excel работать с бинарным файлом?  
Прошу Вашей помощи, если есть такая возможность. Есть бинарный файл и обычная книга excel с формой. Есть ли код который бы мог заставить значение Текстбокса1 в форме быть записанным в начало в первой строке бинарного файла?  
Если есть возможность, пожалуйста подскажите!  
Спасибо!
 
f=freefile  
       Open имяфайла For Binary Access Write As f  
put f,1,textbox.value  
close f
Живи и дай жить..
 
Private Sub CommandButton1_Click()  
folder = "C:\"  
name_T = Dir(folder & "1" & ".bin")  
f = FreeFile  
Open name_T For Binary Access Write As f  
Put f, 1, TextBox.Value  
Close f  
End Sub  
 
Что то не получилось у меня, при выполнении выделяется строка(Put f, 1, TextBox.Value) и выдает ошибку, бинарный файл расположен на диске С.  
Пожалуйста подправьте, что то не так делаю.
 
Open folder & name_T For Binary Access Write As f
 
Так, разобрался, нашел где допустил ошибку!  
Сделал так,    
Private Sub CommandButton1_Click()  
f = FreeFile  
Open "C:\1.bin" For Binary Access Write As f  
Put f, 1, TextBox1.Value  
Close f  
End Sub  
Данные записались, вот только не так как нужно. Они записались в правую облавсть (Case) а мне надо чтобы в (HEX). Если есть возможность подскажите как это сделать?
 
Да и TextBox1.Value нужно, если на Вашем примере.
 
Подскажите пожалуста как мне в HEX область заставить их записаться и с начала строки?
 
что за ..? hex?
 
Ну, бинарный файл если его просматривать hex редактором, разделен на 2 половины. Вот левая часть это данные в 16ричной системе от 0 до F(hex), а справа (Case) данные от а до я, и все остальные символы. Если посмотреть пример по этой теме, то мы увидим что данные в (C:\1.bin) меняются в области Case справа, а надо чтобы значение из Текстбокса было записано на место 16ричных значений(HEX). или делать преоброзование 10ричных в 16ричные значения.  
Подскажите пожалуйста почему при таком примере как он есть данные заносятся не с начала строки? Можно ли как то поменять размещение записываемых данных?
 
Так?  
Private Sub CommandButton1_Click()  
folder = "C:\"  
name_T = Dir(folder & "1" & ".bin")  
f = FreeFile  
Open folder & name_T For Binary Access Read Write Shared As f  
For i = 1 To Len(TextBox1.Value)  
Put f, i, Asc(Mid(TextBox1.Value, i, 1))  
Next  
Close f  
End Sub
 
Уважаемый Hugo!  
Ваш вариант намного лучше чем было у меня до этого. Спасибо! Но вот посмотрите пожалуйста в картинках, то как мне нужно, я просто наверное не могу выразиться правильно.    
Картинка 1 - это как сейчас работает.  
Картинка 2 - это как в идеале холелось бы.  
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
Я там выше Read и Shared забыл из кода убрать...  
Картинки посмотреть не успел.
 
http://depositfiles.com/files/e33142axb  
Вот картинки пожалуйста посмиотрите тут если можете.
 
Все разобрался друзья мои. Спасибо всем кто помогал.  
 
Запись:  
Dim f As Integer, b As Byte  
b = Me.TextBox1.Value  
folder = "C:\"  
name_T = Dir(folder & "1" & ".bin")  
f = FreeFile  
Open folder & name_T For Binary As f  
Put f, 1, b  
Close f  
End Sub  
 
Чтение:  
Private Sub CommandButton2_Click()  
Dim f As Integer, b As Byte  
folder = "C:\"  
name_T = Dir(folder & "1" & ".bin")  
f = FreeFile  
Open folder & name_T For Binary As f  
Get #f, 1, b 'ãäå x - íîìåð ñ÷èòûâàåìîãî áàéòà  
MsgBox "áàéò íîìåð" & x & "=" & b  
Close f  
End Sub  
 
Вот бы еще бы формулу чтобы сама переводила из десятичного числа в шеснадцатиричное?
 
Так ведь есть готовые формулы в пакете анализа - поищите HEX2BIN() и тому подобные...
 
{quote}{login=Hugo}{date=31.01.2011 02:02}{thema=}{post}Так ведь есть готовые формулы в пакете анализа - поищите HEX2BIN() и тому подобные...{/post}{/quote}  
Да, уже разобрался. Спасибо!
Страницы: 1
Читают тему
Наверх