Autore Topic: Rimuovere linee BASIC da programma  (Letto 910 volte)

Koji74

  • Neo-iscritto
  • *
  • Post: 21
  • Gioco Preferito: Dead Zone
Rimuovere linee BASIC da programma
« il: 26 Settembre 2024, 11:05:39 »
Ciao a tutti!!!
 Ho provato a fare una ricerca (sia qui che googlando) ma non sono riuscito a trovare niente... Spero che il motivò non stia nell'assurdità della mia domanda ;P.
Mi stavo chiedendo; è possibile far sì, che durante l'esecuzione, con degli appositi comandi, un programma BASIC elimini una parte di se stesso? Un pò come si fà se si vuole eliminare la linea "50" di un programma, si digita 50 e si preme return.
Grazie mille :)

MOD - Spostato in Aiuto & Domande. Modificato il titolo in uno descrittivo. Per cortesia la prossima volta usa la sezione giusta e dài un titolo da cui si capisca il tema del messaggio. -eregil
« Ultima modifica: 26 Settembre 2024, 18:22:32 da eregil »

eregil

  • Administrator
  • Utente
  • *****
  • Post: 710
  • Gioco Preferito: Impossible Mission
Re:Rimuovere linee BASIC da programma
« Risposta #1 il: 26 Settembre 2024, 18:34:34 »
Con dei semplici comandi BASIC direttamente dal programma non è possibile. In teoria (per un numero limitato di righe) potresti far stampare i numeri di riga a schermo, terminare l'esecuzione del programma e far premere i RETURN opportuni manipolando il buffer di tastiera, ma anche facendo così avresti comunque l'effetto di cancellare anche tutte le variabili memorizzate e non potresti continuare con CONT, quindi questo sarebbe di scarsa utilità pratica a meno che tu non sappia di poter continuare con una RUN a un certo numero di linea perché memorizzi i dati in maniera particolare o comunque sai che non ti serve conservare le variabili.

In linea di massima è molto meglio che scriva il programma con i giusti strumenti di controllo del flusso di esecuzione (IF, GOTO, ecc.). Se il problema è quello di non poter tenere in memoria un programma perché molto lungo, è meglio cercare altri modi di affrontarlo, ma senza sapere qual è l'obiettivo è difficile immaginarsi quale approccio possa essere migliore.
Non rispondo a richieste private, di qualunque genere esse siano.
Per domande tecniche leggete le FAQ e usate l'apposito forum.
Per questioni amministrative contattate lo staff tramite il form Contatti sul sito.

Koji74

  • Neo-iscritto
  • *
  • Post: 21
  • Gioco Preferito: Dead Zone
Re:Rimuovere linee BASIC da programma
« Risposta #2 il: 26 Settembre 2024, 20:22:19 »
Scusami, la prossima volta vedrò di essere un po' più attento.
Non è che mi serva per qualcosa di preciso, ma mi è venuta questa cosa in mente e mi chiedevo, se fosse stata prevista una cosa del genere nel basic del C64.
Grazie mille per la risposta, ma credo proprio che non indagherò più a fondo per cercare stratagemmi per ottenere questo risultato, che probabilmente è inutile anche perché, come dici tu, ci sono molteplici modi per far "girare" il programma nel modo più efficiente possibile senza doversi porre il problema di eliminare in corso di esecuzione delle linee di programma ;).


0scur0

  • Neo-iscritto
  • *
  • Post: 35
  • Gioco Preferito: -
Re:Rimuovere linee BASIC da programma
« Risposta #3 il: 01 Ottobre 2024, 16:44:48 »
Mi stavo chiedendo; è possibile far sì, che durante l'esecuzione, con degli appositi comandi, un programma BASIC elimini una parte di se stesso? Un pò come si fà se si vuole eliminare la linea "50" di un programma, si digita 50 e si preme return.

Qualunque input da tastiera può essere emulato interamente via software. Quindi sì, è possibile e se ne è accennato anche qui sul forum, secoli fa.
Comunque, era una tecnica piuttosto macchinosa utillizzata di rado, per lo più per proteggere il software da copie non autorizzate; per questo scopo, era molto più frequente ricorrere a codice assembly automodificante.