Проблема с массивом

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

Проблема с массивом

Сообщение Kolobuk » 18.02.2007 (Вс) 14:03

Привет.

Есть такой вот код:

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

Private Sub Command1_Click()
Dim IMYA() As String
ReDim IMYA(2) As String

IMYA(0) = "12345"
IMYA(1) = "1234567"
IMYA(2) = "123456789"

Open App.Path & "\ZZZ.ZZ" For Binary As #3 Len = 1
Put #3, 1, IMYA
Close #3
End Sub


В файл ZZZ.ZZ записывается такая штука:
0500 (integer)
12345 (string)
0700 (integer)
1234567 (string)
0900 (integer)
123456789 (string)

------------
Как я понял перед строками указывается длина строки. Откуда она вообще берётся? Мне нужно чтобы строки подряд шли без 0500, 0700 и т.д.

Придётся использовать цикл для записи массива в файл? Или я что-то упустил?

-------------------
П.С.: Пример - упрощённый.
И спаибо за внимание :wink:

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

Re: Проблема с массивом

Сообщение tyomitch » 18.02.2007 (Вс) 14:32

Kolobuk писал(а):Как я понял перед строками указывается длина строки. Откуда она вообще берётся? Мне нужно чтобы строки подряд шли без 0500, 0700 и т.д.

Они все равной длины?
Если нет, то как тогда ты их прочитаешь назад?
Изображение

Kolobuk
Обычный пользователь
Обычный пользователь
 
Сообщения: 61
Зарегистрирован: 24.10.2006 (Вт) 20:03

Сообщение Kolobuk » 18.02.2007 (Вс) 14:47

ну на самом деле формат файла такой:
оффсеты (пыти доступа до начало каждого из имён), потом блок с именами.
Из оффсетов берём и длину имён.
------
Избавиться от 0500 и т.п. можно как то?

EUGY
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 214
Зарегистрирован: 09.11.2006 (Чт) 22:51
Откуда: Мурманск

Сообщение EUGY » 18.02.2007 (Вс) 15:52

StrConv( IMYA(0)) , vbUnicode) ?
...
или может Put #3, 1, Join(IMYA()) ?
...
И ваще, фантазия на что?

Kolobuk
Обычный пользователь
Обычный пользователь
 
Сообщения: 61
Зарегистрирован: 24.10.2006 (Вт) 20:03

Сообщение Kolobuk » 18.02.2007 (Вс) 16:37

Код: Выделить всё
IM_EDINO = JOIN(IMYA, "")
Put #3, 1, IM_EDINO


Идеально :)
Спасибо!


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

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

Сейчас этот форум просматривают: Google-бот, Mail.ru [бот], Yandex-бот и гости: 51

    TopList