Differenze tra le versioni di "Atoi()"

Da Gambas-it.org - Wikipedia.
(Creata pagina con 'La funzione della libreria di C ''int atoi(const char * str)'' converte una stringa in un numero intero. Volendola utilizzare in Gambas, bisognerà dichiararla con ''Extern...')
 
Riga 38: Riga 38:
 
   int converte(char * s) {
 
   int converte(char * s) {
 
   
 
   
  i = atoi(s);
+
    i = atoi(s);
 
    
 
    
  return i;
+
    return i;
 
   
 
   
 
  }
 
  }

Versione delle 08:38, 7 feb 2014

La funzione della libreria di C

int atoi(const char * str)

converte una stringa in un numero intero.


Volendola utilizzare in Gambas, bisognerà dichiararla con Extern, nonché e dichiarare la libreria di C: libc.so.6, nella quale la funzione è contenuta:

Private Extern atoi(num As String) As Integer In "libc:6"


Semplice esempio di uso in Gambas:

' int atoi(const char * str)
Private Extern atoi(num As String) As Integer In "libc:6"

Public Sub Main()

 Dim s As String
 Dim i As Integer
 
   s = "2222"
   
   i = atoi(s)
   
   Print i
 
End


Uso della funzione atoi() all'interno di una libreria esterna creata dall'utente

Se il programmatore vuole utilizzare la funzione atoi() all'interno di una libreria esterna specifica da lui creata, allora si potrà adottare il seguente codice.

La libreria esterna specifica, il cui file di codice sarà chiamato ad esempio libconv.c, può essere:

#include <string.h>


 int i;

 int converte(char * s) {

   i = atoi(s);
 
   return i;

}

e verrà posta ad esempio nella cartella "Dati" dell'applicativo.

Il codice Gambas potrà essere:

Private Extern converte(num As String) As Integer In "/tmp/libconv"


Public Sub Main()

 Dim s As String
 Dim i As Integer

  Shell "gcc -o /tmp/libconv.so " & Application.Path &/ "libconv.c -shared -fPIC" Wait


  s = "2222"
   
  i = converte(s)
   
  Print i

End