Open file for input, VB6 to Gambas translation.

Post

Posted
Rating:
#1 (In Topic #1064)
Trainee
FKLCo is in the usergroup ‘unknown’
 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
Online now: No Back to the top

Post

Posted
Rating:
#2
Online now: No Back to the top

Post

Posted
Rating:
#3
Banned
Should be something like this…

Code (gambas)

  1.  
  2. Private Sub Incarcare_Extrageri()
  3. Dim Fisier As File
  4. Dim sText As String
  5. Dim Numar_extrageri As Integer
  6.  
  7. Fisier = Open "Extrageri.loto" For Input
  8.  
  9.  Line Input #Fisier, sText
  10.  Numar_extrageri = Val(sText)
  11.  
  12. Dim Variante As New Integer[Numar_extrageri, 6]
  13.  
  14. TextArea1.Text = sText
  15.  
  16. For x = 0 To Numar_extrageri - 1
  17.   frmMain.ProgressBar1.Value = x / Numar_extrageri
  18.   Label47.Text = Str(x)
  19.   Line Input #Fisier, sText
  20.   Variante[x] = Split(sText, ",")
  21.  
  22. Fisier.Close()
  23.  
Online now: No Back to the top

Post

Posted
Rating:
#4
Trainee
FKLCo is in the usergroup ‘unknown’
I translate to python, was piece of cake.

Code

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()
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.
Online now: No Back to the top
1 guest and 0 members have just viewed this.