Newsgroup: it.comp.lang.delphi
Titolo: richiesta aiuto

ho un vecchio programma in basic, che qui vi trascrivo e vorrei convertirlo
con delphy .
qualcuno mi puo dare una mano, sono inesperto
grazie
listato basic
    ' E2Ixx.BAS  - English to Italian draughts notation opening book
converter
  '   Copyright PC Solutions 1994, All Rights Reserved.
  '   Converts opening book moves from ENGLISH (SBOOK.TXT) to ITALIAN
  '   (IBOOK.TXT) format - terminating tree before King-ending.
  '   Resultant book will need further manual work, as not all English
  '   draughts play lines are good for Italian.
  DEFINT A-Z
  DEF fnisdigit (xint) = (((xint - 48) AND 255) < 10)
  DEF fneng2ital (csqr) = ((32 - csqr) AND 28) + 1 + ((csqr - 1) AND 3)
  tovdu = 0     ' Set this to 1 to test output to screen.
  CLS
  PRINT "English to Italian draughts converter, (C) PC Solutions"
  PRINT " Result will be written to ITBOOK.TXT. You will then need to"
  PRINT " edit out any weak/illegal lines from resultant text - use"
  PRINT " the CTRL-V validate option in DAMA ITALIANA."
  INPUT "Source book (ie. SBOOK.TXT)"; sfil$
  IF sfil$ = "" THEN END
  INPUT "Do everything without selecting (y,n)"; a$
  IF (a$ = "") THEN END
  termend = (a$ = "y")
  OPEN sfil$ FOR INPUT AS 1
  OPEN "itbook.txt" FOR OUTPUT AS 2
    GOSUB convbook
  CLOSE 1
  CLOSE 2
  END
convbook:
  WHILE (EOF(1) = 0)
    LINE INPUT #1, itxt$        ' Input text
    IF tovdu THEN PRINT "<" + itxt$
    IF itxt$ = ".end." THEN RETURN
    tptr = 1
    lenitxt = LEN(itxt$)
    otxt$ = ""                  ' Output text
    termline = 0
    WHILE tptr <= lenitxt
      cchr = ASC(MID$(itxt$, tptr, 1) + CHR$(0))
      IF (fnisdigit(cchr)) THEN        ' Number-convert it?
        cmove = VAL(MID$(itxt$, tptr))
        movefrom = cmove / 100
        moveto = cmove MOD 100
        IF (cmove < 33 AND cmove > 0) AND termend THEN GOTO skipit
        isgood = 1
        IF movefrom < 1 OR movefrom > 32 OR moveto < 1 OR moveto > 32 THEN
          isgood = 0
          otxt$ = otxt$ + CHR$(cchr)
          tptr = tptr + 1
        ELSE
          IF termline = 0 AND termend = 0 THEN
            IF movefrom < moveto THEN     ' Near crowning?
              IF moveto > 24 AND RIGHT$(otxt$, 1) = "," THEN
                otxt$ = LEFT$(otxt$, LEN(otxt$) - 1) + "{."
                termline = 1
              END IF
            ELSE
              IF moveto < 9 AND RIGHT$(otxt$, 1) = "," THEN
                otxt$ = LEFT$(otxt$, LEN(otxt$) - 1) + "{."
                termline = 1
              END IF
            END IF
          END IF
          movefrom = fneng2ital(movefrom)
          otxt$ = otxt$ + MID$(STR$(movefrom), 2)
skipit:
          moveto = fneng2ital(moveto)
          otxt$ = otxt$ + RIGHT$(STR$(100 + moveto), 2)
          tptr = tptr + 1
          WHILE fnisdigit(ASC(MID$(itxt$, tptr, 1) + CHR$(0)))
            tptr = tptr + 1
          WEND
        END IF
      ELSE
        otxt$ = otxt$ + CHR$(cchr)
        tptr = tptr + 1
      END IF
      ' PRINT ">"; otxt$; "@"; tptr
    WEND
    IF tovdu THEN
      COLOR 15: PRINT ">" + otxt$: COLOR 7
      IF CSRLIN > 19 THEN
        INPUT "Hit ENTER for next page.."; x
        CLS
      END IF
    ELSE
      PRINT #2, otxt$
    END IF
  WEND
  RETURN

con delphy .
Scusa... è un programma per convertire le mosse della dama dal formato 
americano a quello italiano?
Morde.
morde [at] programmer [.] net

 wrote:
Descrivici il formato del file di input....
se non sbaglio questa utility legge un file di testo ed estrapola dei valori...
spiegaci la logica!


 con delphy .
[cut]
Ci sono troppi salti incondizionati;
purtroppo le affinità tra Basic e Delphi sono poche;
tuttavia provo a convertirlo...
Ciao.
Toni

 ha scritto nel messaggio
news:1uGV9.13176$ZE.3...@twister2.libero.it...


questo č un esempio del file inglese  provo a descrivervi cosa bisognerebbe
fare:
le prime cinque righe descrittive si possono lasciare cosi come sono
la parttia inizia da 1. (che sta per prima mossa) poi troviamo 9-13 (che
significa che la pedina posta nella casella 9 passa in 13)
poi troviamo 21-17 (significa che il pezzo posto in 21 passa in 17) poi si
prosegue con la seconda mossa 2.
ecc. ecc. fino alla fine
per convertirlo nel gioco italiano bisogna modifiar ei numeri delle caselle
in questo modo:
inglese italiana
1     29
2     30
3     31
4     32
5     25
6     26
7     27
8     28
9     21
10     22
11     23
12     24
13     17
14     18
15     19
16     20
17     13
18     14
19     15
20     16
21     9
22     10
23     11
24     12
25     5
26     6
27     7
28     8
29     1
30     2
31     3
32     4
[Event "Game 1, 25.8.95. English Match Championship. Bristol 1995."]
[Date "1995"]
[Black "G.Miller"]
[White "R.Pask"]
[Result "1/2-1/2"]
1.  9-13 21-17 2.  5-9 25-21 3. 11-15 29-25 4.  9-14 23-18 5. 14x23 27x11
6.  8x15 17-14 7. 10x17 21x14 8.  6-10 25-21 9. 10x17 21x14 10. 15-19 24x15
11.  7-10 14x7 12.  2x25 30x21 13.  4-8 32-27 14.  8-11 27-23 15.  3-7
23-18 16.  7-10 18-14 17. 10x17 21x14 18. 13-17 14-10 19. 11-15 26-23
20. 15-19 23x16 21. 12x19 31-27 22.  1-5 10-7 23.  5-9  7-2 24.  9-14  2-7
25. 14-18  7-10 26. 17-21 10-14 27. 19-23 27-24 28. 18-22 1/2-1/2
[Event "Game 2, 25.8.95. English Match Championship. Bristol 1995."]
[Date "1995"]
[Black "R.Pask"]
[White "G.Miller"]
[Result "1-0"]
1.  9-13 21-17 2.  5-9 25-21 3. 11-15 23-18 4.  1-5 18x11 5.  8x15 24-19
6. 15x24 28x19 7.  7-11 27-23 8.  3-8 30-25 9. 11-15 32-28 10. 15x24 28x19
11.  8-11 23-18 12. 11-16 26-23 13. 16-20 31-26 14. 20-24 17-14 15. 10x17
21x14 16.  6-10 14x7 17.  2x11 19-15 18. 12-16 15x8 19.  4x11 25-21
20. 24-28 21-17 21. 28-32 29-25 22. 32-28 1-0
Naturalmente bisognerebbe rispettare la stesa formatazione ed evitare che
anche il numero della mossa venga modificato
Ringrazio anticipatamente chi mi vorra aiutare.


E' il formato PDN, 
http://www.chessandcheckers.com/pdn.htm
Bisogna vedere se c'e' già un'implementazione, tutti si software da me trovati sono shareware
e quindi ninente sorgenti...


 ha scritto nel messaggio
news:f1lf2v83uqiv61qod...@4ax.com...

si il formato è proprio quello, implementyazioni non ce ne sono