Hi
Please, if somebody can help me with translation of this part of program.
This program was write by me 20 years ago on windows (vb6). From 20 years I switch to linux I wont to translate this program to Gambas.
VB6 code:
Public Variante(1 To 500, 1 To 6) As Integer
Public Numar_extrageri As Integer
Public Sub Incarcare_Extrageri()
Open "C:\WINDOWS\Desktop\extrageri.loto" For Input As #1
Input #1, Numar_extrageri
frmMain.ProgressBar1.Visible = True
frmMain.sbStatusBar.SimpleText = "Incarcare Extrageri"
frmMain.ProgressBar1.Min = 0
frmMain.ProgressBar1.Max = Numar_extrageri
frmMain.Caption = "Incarcare Extrageri"
For x = 1 To Numar_extrageri
frmMain.ProgressBar1.Value = x
DoEvents
Input #1, Variante(x, 1), Variante(x, 2), Variante(x, 3), Variante(x, 4), Variante(x, 5), Variante(x, 6)
Next x
Close #1
frmMain.sbStatusBar.SimpleText = "Extrageri Incarcate"
frmMain.Caption = "Loto 5/40"
frmMain.ProgressBar1.Visible = False
End Sub
Gambas code:
Sub Incarcare_Extrageri()
Dim Fisier As File
Dim Numar_extrageri As Integer
Dim x As Integer
Dim Variante As New Integer[500, 6]
Fisier = Open "Extrageri.loto" For Input
Input Numar_extrageri
TextArea1.Text = Numar_extrageri
'frmMain.ProgressBar1.Visible = True
'frmMain.sbStatusBar.SimpleText = "Incarcare Extrageri"
'frmMain.ProgressBar1.Min = 0
'frmMain.ProgressBar1.Max = Numar_extrageri
'frmMain.Caption = "Incarcare Extrageri"
For x = 1 To Numar_extrageri
'frmMain.ProgressBar1.Value = x
'Wait
Label47.Text = x
Input #1, Variante[x, 1], Variante[x, 2], Variante[x, 3], Variante[x, 4], Variante[x, 5], Variante[x, 6]
Next
Close #1
' frmMain.sbStatusBar.SimpleText = "Extrageri Incarcate"
' frmMain.Caption = "Loto 5/40"
' frmMain.ProgressBar1.Visible = False
End
the file looks like this
455
5,13,25,26,37,38
5,11,20,21,32,38
10,11,27,29,32,38
3,10,31,36,38,40
.....
up to 455lines
All I want is to read a file like this ... read the fist line (455) and put it in variable "Numar_extrageri" after theat with for x=1 to Numar_extrageri to read all the numbers in Variante matrix.
Sorry for my English
Thanks
Open file for input, VB6 to Gambas translation.
- BruceSteers
- Posts: 1581
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Open file for input, VB6 to Gambas translation.
If at first you don't succeed , try doing something differently.
BruceS
BruceS
- BruceSteers
- Posts: 1581
- Joined: Thursday 23rd July 2020 5:20pm
- Location: Isle of Wight
- Contact:
Re: Open file for input, VB6 to Gambas translation.
Should be something like this...
Private Sub Incarcare_Extrageri()
Dim Fisier As File
Dim sText As String
Dim Numar_extrageri As Integer
Dim x As Integer
Fisier = Open "Extrageri.loto" For Input
Line Input #Fisier, sText
Numar_extrageri = Val(sText)
Dim Variante As New Integer[Numar_extrageri, 6]
TextArea1.Text = sText
For x = 0 To Numar_extrageri - 1
frmMain.ProgressBar1.Value = x / Numar_extrageri
Label47.Text = Str(x)
Line Input #Fisier, sText
Variante[x] = Split(sText, ",")
Next
Fisier.Close()
End
If at first you don't succeed , try doing something differently.
BruceS
BruceS
Re: Open file for input, VB6 to Gambas translation.
I translate to python, was piece of cake.
Thanks for answer, but I discover the python is mach human readable then ganbas. Take me a week to try to open a file in gambas without success, and in python 3 hours.
I love gambas for all the function but not for file read.
Code: Select all
import csv
# Deschide fișierul CSV în modul de citire
with open('/home/catalin/Documente/Programe Python/Loto 540/Extrageri.loto', 'r') as fisier_csv:
# Creează un cititor CSV
cititor = csv.reader(fisier_csv)
# Citeste linia de antet
antet = next(cititor)
# Accesează doar primul element din antet și convertește-l într-un număr întreg
primul_element = int(antet[0])
# Afișează primul element din antet
print(primul_element)
# Inițializează matricea cu dimensiunile corespunzătoare
numar_randuri = primul_element
numar_coloane = 6
matrice = [[None] * numar_coloane for _ in range(numar_randuri)]
# Parcurge fiecare rând și coloană din fișierul CSV
for i, rand in enumerate(cititor):
for j, valoare in enumerate(rand):
# Stochează valoarea în matrice
matrice[i][j] = valoare
# Accesează un element specific din matrice (de exemplu, elementul de la linia a și coloana b)
a = 0
b = 0
valoare_ab = matrice[a][b]
# Afișează valoarea elementului de la linia a și coloana b
print(valoare_ab)
# Iterează prin toate elementele matricei
for x in range(numar_randuri):
print('Extragerea nr.', x + 1, '=', end=" ")
for y in range(numar_coloane):
numar = matrice[x][y]
print(numar, end=" ")
print()
I love gambas for all the function but not for file read.