Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    (Qbasic) - crea file alle ore 7.00 ...

    Ciao a tutti,
    rieccomi con un quesito con il vecchio qbasic ..
    Voglio creare un file che abbia come nome la data e l'estensione .txt.
    Fin quì semplice per me..

    Questo file però deve essere creato nuovo alle ore 7.00 con la data attuale (ad es. oggi 24-02-2009) e tale file deve mantenere il nome 24-02-2009.txt per 24 ore..cioè fino alle 06.59 del 25-02-2009.... alle 07.00 poi lo chiude e ne riapre un'altro con il nome 25-02-2009.txt.
    (le date le scrivo in formato europeo...poco cambia se poi in realtà sono in formato americano..).

    Fattibile?? :master:

    Come già detto in un post precedente non sono un programmatore..ma mi ci devo improvvisare per necessità !

    Ciao,
    Alberto

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Beh ... ma se ti devi improvvisare programmatore, perche' non utilizzi (almeno) il VB6?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Nel tuo loop puoi esaminare ad ogni iterazione il valore di DATE$ e TIME$ per eventualmente chiudere il file corrente e aprirne uno nuovo.
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    ok... mi rimane il problema dopo la mezzanotte..
    Il nome file dopo tale orario e fino alle 6.59 dovrà essere DATE$ - 1 ...
    Questo però al qbasic non gli piace scritto così...
    Avevo pensato ad una soluzione, ma forse è un pò troppo macchinosa:
    il formato della data è mm-gg-aaaa.
    Potrei estrarre da questa stringa il giorno "gg".
    Poi convertire la stringa in numero e sottrarre "uno".
    Poi ricostruire la data magari omettendo i segnetti "-".

    Se però c'è un altro metodo ben venga...


    Ciao

  5. #5
    Per ottenere la data e l'ora attuale in un formato gestibile ti puoi basare su questo codice.
    codice:
    TYPE DateTime
            Year AS INTEGER
            Month AS INTEGER
            Day AS INTEGER
            Hour AS INTEGER
            Minutes AS INTEGER
            Seconds AS INTEGER
    END TYPE
    
    DECLARE SUB GetDateTime (dt AS DateTime)
    
    DIM dt AS DateTime
    GetDateTime dt
    PRINT dt.Year, dt.Month, dt.Day, dt.Hour, dt.Minutes, dt.Seconds
    
    SUB GetDateTime (dt AS DateTime)
            'Qui ci sarebbe una race condition... :-(
            mdate$ = DATE$
            mtime$ = TIME$
            dt.Month = VAL(LEFT$(mdate$, 2))
            dt.Day = VAL(MID$(mdate$, 4, 2))
            dt.Year = VAL(RIGHT$(mdate$, 4))
            dt.Hour = VAL(LEFT$(mtime$, 2))
            dt.Minutes = VAL(MID$(mtime$, 4, 2))
            dt.Seconds = VAL(RIGHT$(mtime$, 2))
    END SUB
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Grazie...ma è Visual Basic?

  7. #7
    No, è QuickBasic (credo che vada anche con QBASIC).
    In questo tuo ritorno al passato ti consiglio di usare QuickBasic, è la versione "professionale" del QBASIC che dispone di diverse opzioni aggiuntive, una guida migliore e soprattutto è in grado di compilare i programmi che scrivi in file exe. Puoi scaricarlo da qui.
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Prima di leggere la tua risposta avevo scritto questo:

    CLS
    DIM giorno AS STRING
    DIM numerico AS INTEGER
    word$ = DATE$
    giorno = MID$(word$, 4, 2)
    PRINT giorno
    numerico = VAL(giorno)
    PRINT numerico
    ieri = numerico - 1
    PRINT ieri

    Ecco...funziona ma a video compare così:

    17
    17
    16


    Perchè gli spazi??

  9. #9
    scusa...vedo che nel forum non si vedono..


    allora:

    17
    xx17
    xx16

    dove "xx" sono due space

  10. #10
    Sei sicuro che siano due? Dovrebbe essere uno, è lo spazio che viene usato come segnaposto per il segno; se il numero è negativo lì ci viene messo il meno, se è positivo uno spazio. Credo che la sua utilità sia per l'allineamento.
    Per rimuoverlo puoi sempre fare
    codice:
    PRINT LTRIM$(STR$(numero))
    .
    Amaro C++, il gusto pieno dell'undefined behavior.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.