Подскажите по поводу формирования файла

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

Подскажите по поводу формирования файла

Сообщение kuhtiov » 03.08.2006 (Чт) 6:18

День добрый. Объясните чего не так делаю. Зоздаю файл при помощи стандартной функции Open, в графе print #1, нужно вставить несколько переменных через ";" типа ф;жи;с; , а в файле получается такая картина:
18 11 54

Холелось бы чтобы было вот так:
181154

В чем моя ошибка?

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

Сообщение tyomitch » 03.08.2006 (Чт) 6:36

заключи выводимые переменные в CStr()
Изображение

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 03.08.2006 (Чт) 6:59

print #1, CStr(a$;b$;c$) тек чтоли?

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

Сообщение tyomitch » 03.08.2006 (Чт) 7:01

print #1, CStr(a);CStr(b);CStr(c)

откуда взялись знаки доллара? ты что ли числа в строковых переменных хранишь?
Изображение

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 03.08.2006 (Чт) 7:45

Дело в том что там такая картина:
a$ = "c:\my program\"
b$ = "name.fil"

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Сообщение Matew » 03.08.2006 (Чт) 9:01

kuhtiov, а что мешает заранее собрать строку?
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

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

Сообщение tyomitch » 03.08.2006 (Чт) 9:44

kuhtiov писал(а):Дело в том что там такая картина:
a$ = "c:\my program"
b$ = "name.fil"

Тогда ты чего-то не то говоришь. Пробелы вставляются только между числами, как в твоём первом посте. Между строками они не вставляются.
Изображение

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 03.08.2006 (Чт) 9:45

Все ело в том, что строка с переменной a$ берется из файла .ini где собственно и угазанно место нахождения програмульки. а вторая переменна b$ - является командной стройой, третья переменная (на самом деле не c$, а c) - есть ни что иное, чем число сгенеренное генератором случайных чисел. Все это в сборе должно записаться в файл *.tmp. Вот такой расклад!!!

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 03.08.2006 (Чт) 9:51

Короче, в сборе в файле .tmp такой результат:
rar c:\my prog\*.* a 21422(сгенеренное генератором случайных чисел).rar

Вот такой результат:
rar c:\my prog\*.* a 21422(сгенеренное генератором случайных чисел) .rar
Ясен пень он архивирует через зад!!

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

Сообщение tyomitch » 03.08.2006 (Чт) 9:52

Ну ёшкин кот, заключай уже числовые переменные в CStr, и не парь людям мозги :evil:
Изображение

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.08.2006 (Чт) 9:55

Все-таки остается непонятным что мешает нужную строку собрать заранее?
Весь мир матрица, а мы в нем потоки байтов!

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 03.08.2006 (Чт) 9:58

!Viper! писал(а):Все-таки остается непонятным что мешает нужную строку собрать заранее?


Мешает то, что не известно точно, куда положут эту программу!!!

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 03.08.2006 (Чт) 10:00

а не подскажете, какую именно функцию выполняет команда CStr. Я ее негде не встречал (или просто внимания не обратил)!!

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.08.2006 (Чт) 10:02

хочешь сказать, что на момент записи строки в файл, ты не знаешь как она должна выглядеть? Странно...

Функция CStr преобразовывает свой аргумент в строку.
Весь мир матрица, а мы в нем потоки байтов!

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 03.08.2006 (Чт) 10:07

просто переменная a$, которая является маршрутом до папки назначения изменяется в зависимости от места нахождения программы

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.08.2006 (Чт) 10:43

Да пусть изменяется себе на здоровье сколько ей хочется... На момент вывода в файл она уже известна! Или она непостижимым образом мутирует в момент выполнения оператора Print? :shock:
Весь мир матрица, а мы в нем потоки байтов!

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 03.08.2006 (Чт) 11:24

Просто к этому пути, где лежит програмка добовляется еще одна дериктория

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.08.2006 (Чт) 11:45

Или я ничего не понимаю или одно из двух.... :twisted:

Итак... Есть три строки: первая (a$) берется из ini-файла и представляет собой путь (как я понимаю), вторая (b$) берется из командной строки и является вроде как именем файла, третья есть вовсе не строка (c), а сгенеренное через какой-то генератор число, которое нам ничего не мешает сделать строкой при помощи CStr. Эти три строки надо как то записать в некий файл оператором Print. Каким образом эти три компонента должны между собой соединиться, чтобы была правильная строка в файле? Или должно быть что-то четвертое (строка, число...) что нужно добавить для полного счастья?

Просьба автору прояснить что же ему хочется или привести достаточный для понимания проблемы кусок кода
Весь мир матрица, а мы в нем потоки байтов!

kuhtiov
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 03.08.2006 (Чт) 5:31

Сообщение kuhtiov » 03.08.2006 (Чт) 12:17

Эти три компонента должны между собой соединиться, чтобы была правильная строка в файле. Как я понял должно выглядить так:
a$;b$;CStr(a);".rar"

Я так понял из сегодняшнего общения, что в переменных a$ не возникает пробела с обеих сторон, а возникает он только у числовых переменных типа (c). Я прав или нет?

Viper
Артефакт VBStreets
Артефакт VBStreets
Аватара пользователя
 
Сообщения: 4394
Зарегистрирован: 12.04.2005 (Вт) 17:50
Откуда: Н.Новгород

Сообщение Viper » 03.08.2006 (Чт) 13:52

kuhtiov писал(а):Я так понял из сегодняшнего общения, что в переменных a$ не возникает пробела с обеих сторон, а возникает он только у числовых переменных типа (c). Я прав или нет?


Пробел не возникает у строк. У числовых переменных пробел будет. Таким образом правильно будет либо выводить строки так:

Код: Выделить всё
Print #nFileNumber, a$;b$;CStr(c);".rar"


либо создавать таки единственную строку такой методой и выводить ее:

Код: Выделить всё
s = a$ & b$ & CStr(c) & ".rar"
Print #nFileNumber, s
Весь мир матрица, а мы в нем потоки байтов!


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

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

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

    TopList