Вроде всё железно, а не работает

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Вроде всё железно, а не работает

Сообщение Kiryusha » 29.09.2005 (Чт) 15:10

Вобщем проблема такая: хочу считать бэ-эм-пэшный файл как текстовый, ну делаю

Open тра-та-та For Input As #1
Do While Not Eof(1)
Input #1,s

итд

Работает прога-работает, потом бац и говорит, что усё отрабатала я -конец файла, прога завершает чтение и типа всё так и должно быть. С какого х.. не пойму, ведь еще не всё???. Ладно думаю, что просто строка слишком большая делаю

Open тра-та-та For Input As #1
for i=1 to 1000
s=Input(1,1)

Ну 1000 это так из башки для пробы и нифига, читает ровно столько же символов после чего вылетает эрорка типа Ввод конец файла.

Кто знает почему так может быть, напишите, буду рад любой из версий. Заранее сэнькс.
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 29.09.2005 (Чт) 15:22

А как ты определил, что ещё не всё ? :)

Ни сколько не сомневаюсь в твоих умственных способностях, так что заранее извиняюсь если не прав, но надеюсь ты так не делал - "msgbox S", чтобы это определить ? :D

:roll:

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 29.09.2005 (Чт) 15:22

Код: Выделить всё
Private Sub LoadFile(ByVal strFileName As String)
    Dim Data() As Byte
    Dim n As Long: n = FreeFile
    ReDim Data(FileLen(strFileName))
    Open strFileName For Binary As #n
        Get #n, , Data
    Close #n
    '...
End Sub
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.09.2005 (Чт) 15:23

BV, я бы так не делал.
Lasciate ogni speranza, voi ch'entrate.

Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Сообщение Kiryusha » 29.09.2005 (Чт) 15:25

ALX_2002
Да нет, всё куда проще открываешь файл с помощью блокнота или WordPada и лицезреешь бальшущий файл.
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.

Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Сообщение Kiryusha » 29.09.2005 (Чт) 15:25

alibek
А что? :(
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 29.09.2005 (Чт) 15:31

Код: Выделить всё
Private Sub LoadFile(ByVal strFileName As String)
    Dim bData() As Byte
    Dim n As Long: n = FreeFile
    ReDim bData(FileLen(strFileName))
    Open strFileName For Binary As #n
        Get #n, , bData
    Close #n
    '...
End Sub
Последний раз редактировалось BV 29.09.2005 (Чт) 15:34, всего редактировалось 1 раз.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Сообщение Kiryusha » 29.09.2005 (Чт) 15:33

Да еще добавлю, что мне нужно после этого всего всё равно получить символы. Ведь когда открываешь bmp файл с помощью блокнота там же буквы.
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 29.09.2005 (Чт) 15:38

Код: Выделить всё
strData As String
strData = Space$(FileLen(strFileName))
'...
Replace(strData, vbNullChar, Chr$(32))
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Сообщение Kiryusha » 29.09.2005 (Чт) 15:41

BV
Он возвращает большую пустую строку (из одних пробелов)
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 29.09.2005 (Чт) 16:01

А подумать сложно?

Код: Выделить всё
Private Sub LoadFile(ByRef hTextBox As TextBox, ByVal strFileName As String)
    Dim strData As String
    Dim n As Long: n = FreeFile
    strData = Space$(FileLen(strFileName))
    Open strFileName For Binary Access Read As #n
        Get #n, , strData
    Close #n
    strData = Replace(strData, vbNullChar, Chr$(32))
    hTextBox.Text = strData
End Sub
Последний раз редактировалось BV 29.09.2005 (Чт) 16:15, всего редактировалось 1 раз.
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.09.2005 (Чт) 16:01

Kiryusha писал(а):Да еще добавлю, что мне нужно после этого всего всё равно получить символы. Ведь когда открываешь bmp файл с помощью блокнота там же буквы.


В общем, погляди как выводится это дело в простейшем Hex-редакторе - он приложен (скриншот с него - тоже).

:lol:
Вложения
H.RAR
Пример Hex-Редактора
(16.31 Кб) Скачиваний: 19
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

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

Сообщение tyomitch » 29.09.2005 (Чт) 16:04

Kiryusha, просто попробуй заменить у себя в коде For Input на For Binary. Говорят, помогает.
Изображение

Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Сообщение Kiryusha » 29.09.2005 (Чт) 16:06

tyomitch
Уже попробовал. Он как данные всё считывает, но формат данных не тот, что мне нужно.

Мне нужно получить из файла bmp код ( asc(s) ) каждого символа.
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.09.2005 (Чт) 16:10

Kiryusha писал(а):tyomitch
Мне нужно получить из файла bmp код ( asc(s) ) каждого символа.


В бинарном массиве (в который тебе все и советуют считывать) каждый байт содержит этот самый код! Разве не так?
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Сообщение Kiryusha » 29.09.2005 (Чт) 16:14

Andrey Fedorov
Да я честно говоря никогда этим For Binary и не пользовался. За всю мою практику мне с лихвой хватало Input. Поэтому если не трудно объясни поподробней что возвращается переменной. И почему, когда я пытаюсь вывести в текстовое окно значение переменной, он мне возвращает только 2-3 символа(!)
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.

BV
Thinker
Thinker
Аватара пользователя
 
Сообщения: 3987
Зарегистрирован: 12.09.2004 (Вс) 0:55
Откуда: Молдавия, г. Кишинёв

Сообщение BV » 29.09.2005 (Чт) 16:17

2 Kiryusha

Ты мой код смотрел? :evil:
const char *out = "|*0>78-,+<|"; size_t cc = char_traits<char>::length(out);
for (size_t i=0;i<cc;i++){cout<<static_cast<char>((out[i]^89));}cout<<endl;

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 29.09.2005 (Чт) 16:18

Kiryusha писал(а):А что? :(

А то, что файлы могут быть четырехгигобайтные.
Lasciate ogni speranza, voi ch'entrate.

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 29.09.2005 (Чт) 16:23

alibek писал(а):
Kiryusha писал(а):А что? :(

А то, что файлы могут быть четырехгигобайтные.


Да ладно на этом пока можно не зацикливаться - человек просто не может содержимое на экран вывести, а тут еще и четырехгигобайтные - запугаете совсем... ;)
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

Kiryusha
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 216
Зарегистрирован: 30.08.2005 (Вт) 10:56
Откуда: УР, Ижевск

Сообщение Kiryusha » 29.09.2005 (Чт) 16:37

Andrey Fedorov
Танки грязи не боятся! :)
Судебно-медицинское вскрытие показало, что чукча умер в
результате судебно-медицинского вскрытия.


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

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

Сейчас этот форум просматривают: SemrushBot и гости: 19

    TopList