Срочно! VBasic работа с файлами

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

Срочно! VBasic работа с файлами

Сообщение sinys » 03.12.2005 (Сб) 20:02

Использую прямой доступ.
Как определить количество записей?
Пишу
CODE
record.n = Text1.Text
record.f = Text2.Text
record.name = Text3.Text
record.ot = Text4.Text
record.razr = Text5.Text
record.ceh = Text6.Text
Numberfile = FreeFile
Open "s_rab.txt" For Random As #Numberfile Len = 128
Put #Numberfile, LOF(Numberfile) / 128 + 1, record
но он не делает длину 128, он делает как есть , поэтому записи не идут подряд, а накладываются, то есть в файле
оказывается только одна запись, как решить эту проблему?

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

Сообщение BV » 03.12.2005 (Сб) 21:04

Открываешь файл как Append и ставишь каждую строку через Print.

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

Private Sub Form_Load()
    Open "C:\File.txt" For Append As #1
        Print #1, "первая строка"
        Print #1, "вторая строка"
        '...
    Close #1
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 » 04.12.2005 (Вс) 10:44

Если открываешь файл для прямого доступа, то записи должны иметь фиксированный размер.
Lasciate ogni speranza, voi ch'entrate.

SergT
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 237
Зарегистрирован: 22.06.2005 (Ср) 21:50
Откуда: Москва

Сообщение SergT » 07.12.2005 (Ср) 10:10

alibek писал(а):... записи должны иметь фиксированный размер.


Если не сложно - чуть подробнее :shock:
Л. Толстой, «зачем обдумывать обдуманное, бери готовое и иди дальше, в этом сила человечества»
"Всё в наших руках, поэтому их нельзя опускать" (Коко Шанель)

AndreyIl
Обычный пользователь
Обычный пользователь
 
Сообщения: 82
Зарегистрирован: 18.10.2005 (Вт) 16:17
Откуда: г. Брянск

Сообщение AndreyIl » 07.12.2005 (Ср) 10:17

Определить количество записей можно, перебирая строки по циклу.
Когда EOF, тогда i - количество записей.

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

Сообщение alibek » 07.12.2005 (Ср) 10:17

Не
Код: Выделить всё
Type UserType
  fld1 As Long
  fld2 As String
  fld3 As Single
  fld4 As Variant
End Type

а
Код: Выделить всё
Type UserType
  fld1 As Long
  fld2 As String*40
  fld3 As Single
  fld4 As String*20
End Type


И соответственно, Dim rec As UserType, и в открытии файла Open ... Len = Len(rec)
Lasciate ogni speranza, voi ch'entrate.


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

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

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

    TopList  
cron