Создание числовой меняющейся числовой переменной

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Snakes
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.07.2012 (Чт) 15:49

Создание числовой меняющейся числовой переменной

Сообщение Snakes » 12.07.2012 (Чт) 15:55

Как создать переменную ,которая меняется при каждом ее использовании на один.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Создание числовой меняющейся числовой переменной

Сообщение iGrok » 12.07.2012 (Чт) 16:45

Взять переменную и при каждом её использовании менять её на один.

Впрочем, при такой формулировке можно просто заменить её по всему коду на единицу...
label:
cli
jmp label

Snakes
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.07.2012 (Чт) 15:49

Re: Создание числовой меняющейся числовой переменной

Сообщение Snakes » 12.07.2012 (Чт) 16:49

НУЖНО ЧТОБЫ ВСЕ ЭТО ДЕЛАЛОСЬ АВТОМАТИЧЕСКИ НАПРИМЕР:ВОТ СЕЙЧАС У МЕНЯ В АЛЬБОМЕ 45 КАРТИНОК А В ДРУГОЙ РАЗ БУДЕТ АЛЬБОМ ИЗ 100 КАРТИНОК.И КАК СДЕЛАТЬ ЧТОБЫ КАЖДАЯ КАРТИНКА АВТОМАТИЧЕСКИ НОМИРОВАЛАСЬ

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 12.07.2012 (Чт) 20:28

Напиши, что именно ты хочешь сделать. Возможно, тебе подойдёт свойство вместо переменной. Но у такого решения будут последствия.
К тому же, если ты делаешь некий семафор (хотя, по последнему сообщению не похоже), то не годится.

iGrok, ну ясно же было, что он имел в виду инкремент.
Snakes, не зли людей заглавными буквами.

Snakes
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.07.2012 (Чт) 15:49

Re: Создание числовой меняющейся числовой переменной

Сообщение Snakes » 12.07.2012 (Чт) 21:04

Простите,больше не буду злить людей большими буквами.И так вот код
Код: Выделить всё
      Public Class Form1
    Dim B As String

    Private Property SWFToImage As Object


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


        SWFToImage = CreateObject("SWFToImage.SWFToImageObject")

        SWFToImage.InitLibrary("demo", "demo")

        SWFToImage.InputSWFFileName = "C:\Users\Михаил\Desktop\Работы\WindowsApplication9\WindowsApplication9\SWF\my.swf"
        SWFToImage.ImageOutputType = 1 ' set output image type to Jpeg (0 = BMP, 1 = JPG, 2 = GIF)

        SWFToImage.Execute_Begin() ' start conversion

        MsgBox("There are " & CStr(SWFToImage.FramesCount) & " frames to convert" & vbCrLf & "Will convert first 10 frames only")
    Dim a As Long
    Dim u As Integer = 2
        B = B + 1
        For i = 0 To 45 ' change to SWFTOImage.FramesCount -1 to convert all frames
            SWFToImage.FrameIndex = i ' set frame index
            SWFToImage.Execute_GetImage()
            SWFToImage.SaveToFile("C:\Users\Михаил\Desktop\Работы\WindowsApplication9\WindowsApplication9\image\my_" & CStr(i) & ".jpg")
        Next
        Randomize()
        u = Rnd()
    Dim Mass(10) As String ' Объявляем массив с индексом 10, для хранения символов
    Dim r As Long ' Переменная для хранения чисел
    Dim G As String ' Переменная для хранения символов
        Randomize() ' Это чтоб в функции Rnd генерировались разные числа
        For i = 0 To 10 ' Цикл, будет 10 раз повторяться
            Mass(i) = 0 ' Все числа массива приравниваем к 0
            r = Rnd() * 1 ' Генерируем случайное число(от 0 до 1) и записываем его в переменную R
            If r = 0 Then ' Если R=0 то:
                Mass(i) = "Bla" ' Записываем в массив(индекс зависит от переменной i) слово "Bla"
            End If
            If r = r Then r = r + 1
            G = G & i & "" + Chr(13) ' Переменная G = G(это содержимое переменной)&i(это перенная содержит число повторений цикла) + " = " + Mass(i)(значение массива(ил "Bla" ил "0")) + Chr(13)(ну это Enter(т.е. новая строка))
        Next i
        MsgBox(G, 48, "")

        SWFToImage.Execute_End() ' end conversion
    Dim swfneme As String = ("C:\Users\Михаил\Desktop\utexh\bhj.txt")

        Dim id_xml As String = ("<image id= " & (g) & ">" & vbCrLf & "  <title>Картинка_" & (SWFToImage.FrameIndex) & "</title>" & vbCrLf & "  <image>" & ("C:\Users\Михаил\Desktop\Работы\WindowsApplication9\WindowsApplication9\image\my_" & CStr(SWFToImage.FrameIndex) & ".jpg") & "</image>")
    Dim kod As System.Text.Encoding = System.Text.Encoding.GetEncoding(65001)
    Dim ch As New IO.StreamReader(swfneme, kod)
        For i% = 1 To 45
            TextBox1.Text = TextBox1.Text & vbCrLf & id_xml & vbCrLf & ""
        Next i%
        ch.Close()
    Dim kod1 As System.Text.Encoding = System.Text.Encoding.GetEncoding(65001)
    Dim swfnam2 As String = "C:\Users\Михаил\Desktop\utech3\bhj.xml"
    Dim cg As New IO.StreamWriter(swfnam2, False, kod1)
        cg.Write(TextBox1.Text)
        cg.Close()
    End Sub
End Class

Так вот мне нужно чтобы ID XML менялся с каждой строкой.

Snakes
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.07.2012 (Чт) 15:49

Re: Создание числовой меняющейся числовой переменной

Сообщение Snakes » 12.07.2012 (Чт) 21:06

.То есть одна строчка id = 2 ..... Следующая строчка id = 3 ... и так чтобы число генерировалось автоматически ровно столько скольким равен цикл i.
ЗЫ если будет что нить лишнее в коде не обращайте внимания это я просто пока учусь.

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 12.07.2012 (Чт) 21:45

Ээээ... А ты VBA с VB.NET не перепутал?

Snakes писал(а):
Код: Выделить всё
Dim u As Integer = 2
u = Rnd()

0 или 1 с вероятностью 50%.

Snakes писал(а):Dim Mass(10) As String ' Объявляем массив с индексом 10, для хранения символов

С индексами от 0 до 10 включительно, т. е. из 11 элементов.

Snakes писал(а):r = Rnd() * 1 ' Генерируем случайное число(от 0 до 1) и записываем его в переменную R

0 или 1 с вероятностью 50%.
Умножение на единицу.

Snakes писал(а):If r = r Then r = r + 1

Заведомо истинное условие.

Snakes писал(а):
Код: Выделить всё
G = G & i & "" + Chr(13) ' Переменная G = G(это содержимое переменной)&i(это перенная содержит число повторений цикла) + " = " + Mass(i)(значение массива(ил "Bla" ил "0")) + Chr(13)(ну это Enter(т.е. новая строка))

Комментарий коду не соответствует.
Ещё, существуют константы vbCr, vbLf, vbCrLf.

Snakes писал(а):Dim ch As New IO.StreamReader(swfneme, kod)

Ну почему ch? Это же традиционное сокращение от Char...
Лучше использовать Using вместо Dim.

Snakes писал(а):
Код: Выделить всё
Dim id_xml As String = ("<image id= " & (g) & ">" & vbCrLf & "  <title>Картинка_" & (SWFToImage.FrameIndex) & "</title>" & vbCrLf & "  <image>" & ("C:\Users\Михаил\Desktop\Работы\WindowsApplication9\WindowsApplication9\image\my_" & CStr(SWFToImage.FrameIndex) & ".jpg") & "</image>")

String.Format - удобнее и лучше чем такая конкатенация.

Snakes писал(а):Dim kod1 As System.Text.Encoding = System.Text.Encoding.GetEncoding(65001)

Не надо её каждый раз создавать.

Snakes писал(а):.То есть одна строчка id = 2 ..... Следующая строчка id = 3 ... и так чтобы число генерировалось автоматически ровно столько скольким равен цикл i.

Не понятно. Возможно, в G надо хранить массив, а не конкатенацию.

Snakes писал(а):ЗЫ если будет что нить лишнее в коде не обращайте внимания это я просто пока учусь.

Заметно. Ужасный код. А комментарии ещё хуже...

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 12.07.2012 (Чт) 21:52

Qwertiy писал(а):
Snakes писал(а):.То есть одна строчка id = 2 ..... Следующая строчка id = 3 ... и так чтобы число генерировалось автоматически ровно столько скольким равен цикл i.

Не понятно. Возможно, в G надо хранить массив, а не конкатенацию.

Разобрался. В G действительно надо хранить массив. А объявление переменной id_xml переместить внутрь цикла.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Создание числовой меняющейся числовой переменной

Сообщение iGrok » 13.07.2012 (Пт) 1:43

Qwertiy писал(а):iGrok, ну ясно же было, что он имел в виду инкремент.

Ясно, да не ясно. Ты ведь и сам видишь уже, что ни разу не автоинкремент переменной при обращении в виду имелся?

Snakes писал(а):То есть одна строчка id = 2 ..... Следующая строчка id = 3 ... и так чтобы число генерировалось автоматически ровно столько скольким равен цикл i.

Так это.. Прямо в цикле id = i, вот и вся арифметика.

И вообще, возможно стоит перенести генерацию xml-описания раскадровки вот в этот цикл:
Код: Выделить всё
        For i = 0 To 45 ' change to SWFTOImage.FramesCount -1 to convert all frames
            SWFToImage.FrameIndex = i ' set frame index
            SWFToImage.Execute_GetImage()
            SWFToImage.SaveToFile("C:\Users\Михаил\Desktop\Работы\WindowsApplication9\WindowsApplication9\image\my_" & CStr(i) & ".jpg")
        Next

Имя файлов-то как раз там задаётся...
label:
cli
jmp label

Snakes
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.07.2012 (Чт) 15:49

Re: Создание числовой меняющейся числовой переменной

Сообщение Snakes » 13.07.2012 (Пт) 13:38

Необработанное исключение типа "System.Runtime.InteropServices.COMException" произошло в Microsoft.VisualBasic.dll

Дополнительные сведения: JPEG error #8
Вот он чего мне выдал.Да и еще когда я пишу просто чему равен TextBox то он мне вот это выдает.
И вот как я все перенес
Код: Выделить всё
       For i = 0 To 45 ' change to SWFTOImage.FramesCount -1 to convert all frames
            Dim id_xml As String = ("<image id= " & (i) & ">" & vbCrLf & "  <title>Картинка_" & (SWFToImage.FrameIndex) & "</title>" & vbCrLf & "  <image>" & ("C:\Users\Михаил\Desktop\Работы\WindowsApplication9\WindowsApplication9\image\my_" & CStr(SWFToImage.FrameIndex) & ".jpg") & "</image>")
            For y% = 1 To 45
                TextBox1.Text = TextBox1.Text & vbCrLf & id_xml & vbCrLf & ""
            Next y%
        SWFToImage.FrameIndex = i ' set frame index
        SWFToImage.Execute_GetImage()
        SWFToImage.SaveToFile("C:\Users\Михаил\Desktop\Работы\WindowsApplication9\WindowsApplication9\image\my_" & CStr(i) & ".jpg")
        Next i

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 13.07.2012 (Пт) 17:25

Snakes писал(а):
Код: Выделить всё
            For y% = 1 To 45
                TextBox1.Text = TextBox1.Text & vbCrLf & id_xml & vbCrLf & ""
            Next y%

???

Snakes
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.07.2012 (Чт) 15:49

Re: Создание числовой меняющейся числовой переменной

Сообщение Snakes » 13.07.2012 (Пт) 18:50

Во я подкорректировал и все работает!Спасибо огромное!Я цикл этот убрал!Спасибо!
А как сделать так чтобы в ковычках был номер?

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 13.07.2012 (Пт) 19:31

Snakes писал(а):А как сделать так чтобы в ковычках был номер?

Поставить кавычки :)

Snakes писал(а):& (SWFToImage.FrameIndex) &

Это неверно. И зачем ты скобки ставишь?

Snakes
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.07.2012 (Чт) 15:49

Re: Создание числовой меняющейся числовой переменной

Сообщение Snakes » 13.07.2012 (Пт) 20:10

У меня же переменная,я пробовал у меня k в ковычках а не цыфра

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 13.07.2012 (Пт) 20:20

Snakes писал(а):У меня же переменная,я пробовал у меня k в ковычках а не цыфра

Так надо две кавычки ставить, а не одну. И внутри строки.
И вообще, у тебя xml неправильный - внешний image (тот, что с айдишником) не закрыт.

Должно быть как-то так:
Код: Выделить всё
Dim id_xml As String = String.Format("<image id=""{1}"">{0}  <title>Картинка_{1}</title>{0}  <image>C:\Users\Михаил\Desktop\Работы\WindowsApplication9\WindowsApplication9\image\my_{1}.jpg</image>{0}</image>{0}", vbCrLf, i)

Snakes
Начинающий
Начинающий
 
Сообщения: 8
Зарегистрирован: 12.07.2012 (Чт) 15:49

Re: Создание числовой меняющейся числовой переменной

Сообщение Snakes » 13.07.2012 (Пт) 20:55

Спасибо за уроки!За помощь и за отклик!

Qwertiy
Доктор VB наук
Доктор VB наук
 
Сообщения: 2753
Зарегистрирован: 26.06.2011 (Вс) 21:26

Сообщение Qwertiy » 13.07.2012 (Пт) 21:06

Не за что.


Вернуться в Visual Basic .NET

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

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

    TopList