Как сделать чтение из файла нужной информации??

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
=Taurus=
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 24.05.2005 (Вт) 11:40

Как сделать чтение из файла нужной информации??

Сообщение =Taurus= » 24.05.2005 (Вт) 11:46

Здравствуйте, есть txt файл мне нужно считать из него информацию, конкретно из последней строчки необходимо считать пять цифр, которые находятся, если отсчитать 12 знаков слева.

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

Сообщение BV » 24.05.2005 (Вт) 12:00

Код: Выделить всё
Get #FileNumber, FileLen(FileName)-12, Data
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;

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 24.05.2005 (Вт) 12:02

Юзай FSO С помощью него откроешь файл, а потом узнаешь сколько строк в нём. Следущее действие

mid(Послдняя строка,12,5)

ЗЫ: Что то слишком замудренно... :wink:
Guten Morgen! А если не Guten, то тогда это и не Morgen...

=Taurus=
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 24.05.2005 (Вт) 11:40

Сообщение =Taurus= » 24.05.2005 (Вт) 15:08

А поподробнее можно что такое FSO ???? И как узнать Скалько строк в файле?
Она в переменную запишет это число?? так писать можно
L=mid(Послдняя строка,12,5)

=Taurus=
Начинающий
Начинающий
 
Сообщения: 3
Зарегистрирован: 24.05.2005 (Вт) 11:40

Сообщение =Taurus= » 24.05.2005 (Вт) 15:13

Прокомментируйте пожалуйста, как работает эта строчка?
Get #FileNumber, FileLen(FileName)-12, Data
спасибо.

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 24.05.2005 (Вт) 15:52

1. FSO - File System Object - объект для работы с файловой системой (читай - файлами). Хелп по нему можно почитать в MSDN.
2. Get #FileNumber, FileLen(FileName)-12, Data
Get - етод чтения через бинарный доступ (перед этим файл открывается, как бинарный), #FileNumber - номер файла (указывается при открытии), FileLen(FileName)-12 - сообственно, бит, с которого следует начинать чтение, Data - куда читать - переменная.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

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

Сообщение BV » 24.05.2005 (Вт) 15:57

Вот, держи:

Код: Выделить всё
Public Function OpenFile(ByVal strFileName As String) As String
    On Error Resume Next
    Dim f As Long, strInput As String
    f = FreeFile 'Номер свободного файла
    Open strFileName For Binary Access Read As #f 'Открываем для чтения с Get
        'номер файла, позиция чтения (в данном случае будут читаться только последние 12 байт), куда читать
        Get #f, FileLen(strFileName) - 12, strInput
    Close #f 'Закрываем файл
    OpenFile = strInput
End Function
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;

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

Сообщение BV » 24.05.2005 (Вт) 15:58

Вот, пока писал, уже постнули... :)
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;

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 24.05.2005 (Вт) 16:16

Вначале в референсах делаешь ссылку на Microsoft Scripting Runtime, потом код

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


Option Explicit
Dim fso As New Scripting.FileSystemObject ' объявляешь как скриптинг файл систем
Dim Txt As Scripting.TextStream ' тоже делаешь объявление для того, чтоб с текстовыми файлами мог работать

Private Sub Form_Load()
Dim T As String ' ну, это понятно
Set Txt = fso.OpenTextFile(App.Path & "\Test.txt") ' путь указываешь App.Path это директория прораммы
Do While Not Txt.AtEndOfStream ' читать, пока не будет конец файла
T = Txt.ReadLine ' присваиваем текст к Т
Loop' дальше
Msgbox Mid(T,12,5) ' Выводим  текст из Т начиная с 12 символа и читаем 5 знаков
End Sub

Вот и всё, хотя возможно можно более элегантно сделать, но я на скорую руку накатал чтоб понятней немного было
Последний раз редактировалось Alex_2005 24.05.2005 (Вт) 16:43, всего редактировалось 1 раз.
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 24.05.2005 (Вт) 16:33

Oxygen Прости за нескромный вопрос, вот окуда у тебя звёздочек стока? Другие по 1000 сообщений пишут а звёздочек нет. Конечно мелочь это, ну я имею в виду звёздочки, но приятно. :wink:
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 24.05.2005 (Вт) 16:35

BV
Что ты делал? :shock: "писал"? На какую букву ударение то? :lol:
Guten Morgen! А если не Guten, то тогда это и не Morgen...

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

Сообщение BV » 24.05.2005 (Вт) 17:02

2 Alex_2005

Я ПисАл (ударение на "А")! :)

А вот про звёздочки интересно - у многих уже за 1000 сообщений, а звёздочек только 6!
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;

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 24.05.2005 (Вт) 17:08

BV
кстати, как там кишинёв поживает? стоит ещё? у меня с ним связаны тёплые воспоминания, ох , помница как по ботанике бродили...мимолётом на птичку, потом в колледж... :roll:
Guten Morgen! А если не Guten, то тогда это и не Morgen...

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

Сообщение BV » 24.05.2005 (Вт) 17:15

Всё пучком!... Пока... :)

Кстати я на ботанике работаю. Там ща понастраивали разных торговых центров по самое нехочу. Приезжай, посмотришь!
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;

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 24.05.2005 (Вт) 17:21

Да надо будет. Я уже давно хочу приехать. Соскучился. Три года уже в Молдавии небыл. Может этим летом и приеду. А ты где там работаешь? На какой улице? Я помоему на улице Старого жил. Вот тока не помню.. никога не подумал бы что память в 21 год так сильно подводить может!!! :lol:

ЗЫ: Да, с русским уже проблемы... ну в принципе понятно, одни ж немцы кругом!!
Guten Morgen! А если не Guten, то тогда это и не Morgen...

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

Сообщение BV » 24.05.2005 (Вт) 17:26

Я там, равно как и на телецентре, менеджер по размещению рекламных конструкций, а офис находится в центре.

Птичку нашу ты точно не узнаешь! Хотя там теперь круто! Кроме комплектующих к компам да радио деталей там ничего и не продают. Птицей даже не пахнет! :)
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;

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

Сообщение BV » 24.05.2005 (Вт) 17:27

А так, можем договориться, где встретимся, отметим приезд... :)
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;

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 24.05.2005 (Вт) 17:30

да... теперь уж нетерпица приехать!!! ну прям так и тянет... :P
Guten Morgen! А если не Guten, то тогда это и не Morgen...

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 24.05.2005 (Вт) 20:20

Два ряда звездочек у тех у кого есть спец. звание.
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

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

Сообщение BV » 24.05.2005 (Вт) 21:47

О как! Слушай, я модератор на сайте... на одном сайте, где тот же движок форума. Но я к своему позору не знаю, как присвоить звания и звёздочки, и вообще, могу я это делать или это делает админ. И как здесь мне получить звание?

Я хотел бы себе звание "Мыслитель"... Или что-то в этом духе...


Если ентересно:
Там я могу удалять, двигать, обрезать и править все сообщения. Узнавать Айпи юзеров и т.д.
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;

FaKk2
El rebelde gur&#250;
El rebelde gur&#250;
Аватара пользователя
 
Сообщения: 2031
Зарегистрирован: 09.03.2003 (Вс) 22:10
Откуда: Los Angeles

Сообщение FaKk2 » 25.05.2005 (Ср) 5:43

BV
Обратись к RayShade в ЛС. Только не могу гарантировать что он тебе даст желаемое звание :)
Для получения ответа надо продемонстрировать качества, позволяющие стать компетентным — внимательность, вдумчивость, наблюдательность, желание активно участвовать в выработке решения.

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

Сообщение alibek » 25.05.2005 (Ср) 7:43

Модератор может модерировать, но не администрировать. Звездочки, звания и прочее может менять только администратор.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение BV » 25.05.2005 (Ср) 11:14

2 Алибек

Так причём же здесь RayShade? Он, насколько я понимаю, только модератор?... И как ты, например, получил своё звание?
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 » 25.05.2005 (Ср) 11:17

Кто тебе сказал? Он администратор, так же как и gaidar, moderator, ASD. На цвет его ника посмотри.
Lasciate ogni speranza, voi ch'entrate.

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

Сообщение BV » 25.05.2005 (Ср) 11:35

А кто тогда здесь модератор?

Цвет ника ни о чём не говорит. У меня тоже оранжевый на том форуме.
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;

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

Сообщение BV » 25.05.2005 (Ср) 11:37

Если поможет, это форум {не скажу какой};.
Последний раз редактировалось BV 25.05.2005 (Ср) 12: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;

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 25.05.2005 (Ср) 11:43

А тут модераторов нету - они все в администраторов переквалифицировались. :) См. сюды. http://bbs.vbstreets.ru/viewtopic.php?t=6445
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

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

Сообщение BV » 25.05.2005 (Ср) 12:16

УРА!!! УРА!!! Ура!!!... Сколько звёзд!!!


RayShade ;) :) :D
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;

Alex_2005
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 242
Зарегистрирован: 07.04.2005 (Чт) 17:09
Откуда: Germany, Baden-Wurttemberg, Bietigheim-Bissingen

Сообщение Alex_2005 » 25.05.2005 (Ср) 13:02

BV писал(а):Я хотел бы себе звание "Мыслитель"... Или что-то в этом духе


Во во , а мне бы типо "Неугомонное молдавское брюхо!" :D
Guten Morgen! А если не Guten, то тогда это и не Morgen...

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 25.05.2005 (Ср) 13:26

Alex_2005 писал(а):
BV писал(а):Я хотел бы себе звание "Мыслитель"... Или что-то в этом духе


Во во , а мне бы типо "Неугомонное молдавское брюхо!" :D


Недорос еще :). Спецзвания даются только по достижению 300 постов.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

След.

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

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

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

    TopList