[kixtart] string naar integer

Pagina: 1
Acties:

  • pierce
  • Registratie: April 2000
  • Laatst online: 21:30
Ik wil een waarde die uit een bestand gelezen wordt omzetten van string naar een long integer.

Volgens de handleiding zou de functie "val" het trucje moeten doen, maar dan krijg ik een waarde van -1 terug.

De waarde van de eerste string is 2186266580 en de waarde van de tweede string is 2186511094, maar deze veranderden elke keer.

Heeft iemand enig idee hoe dit ongeveer moet, of naar welke functie ik moet kijken?
Kan het uberhaupt wel met kixtart?

Het gaat om de volgende code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
Open(1, "1.txt")
  $data1 = ReadLine(1)

Open(3, "2.txt")
  $data2 = ReadLine(3)

$date1 = val("&"+$data1)
$date2 = val("&"+$data2)

$minus = $date1 - $date2


? "$date1 - $date2 = $minus

5564


  • urk_forever
  • Registratie: Juni 2001
  • Laatst online: 22:13
Ik denk dat die waardes te groot zijn voor zelfs een long integer. Volgens mij kan een long dit aan:

long 32 -2,147,483,647 to 2,147,483,647

Zie hier: http://crasseux.com/books/ctutorial/Integer-variables.html

Hail to the king baby!


  • pierce
  • Registratie: April 2000
  • Laatst online: 21:30
Heeft iemand nog een idee?

Is er uberhaupt een scripttaal die wel overweg kan met zulke getallen?

5564


  • Ivo
  • Registratie: Juni 2001
  • Laatst online: 14-01-2025

Ivo

Python kan er zeker mee omgaan:
code:
1
2
>>>2**64
18446744073709551616L

  • jvdmeer
  • Registratie: April 2000
  • Laatst online: 23:41
het is natuurlijk een beetje een omweg, maar je kan gewoon de strings handmatig binnen je script van elkaar aftrekken.

Dus net zoals je het in het echt op papier zou doen.

En dan kan je nog zelf kiezen of je een aftrekking uitvoert of het two's complement erbij optelt.