Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [delphi] random,assignfile ecc

    ciao a tutti..
    sto programmando 1 software in delphi in modo ke crea file in 1 determinata cartella ma dei file a serie..in modo a ke il programma crea txt all'infinito(sempre fino al limite dei file di windows)...il codice è questo ma nn mi funziona:

    procedure TForm1.Button1Click(Sender: TObject);
    var
    f:textfile;
    nome : string;
    begin
    randomize;


    repeat
    nome := random(90)+1;
    assignfile(f, 'c:\'+ nome + '.txt');
    rewrite(f);
    until label1.text = 'fine';


    grazie a tutti..

  2. #2
    Allora:
    codice:
    nome := random(90)+1;
    Questa riga è errata perchè se nome è di tipo string, non puoi assegnargli il risultato di una funzione che ritorna un integer. Riscrivila così:
    codice:
    nome := IntToStr(random(90)+1);
    Altra cosa: il file tu lo assegni, lo crei, ma non lo chiudi. Aggiungi questa riga:
    codice:
    assignfile(f, 'c:\'+ nome + '.txt');
    rewrite(f);
    CloseFile(f);
    Ultima cosa: questa riga,
    codice:
    until label1.text = 'fine';
    anche se funziona è concettualmente sbagliata, perchè rende il ciclo infinito! Non si capisce qual'è il testo di Label1, che NON può essere cambiato dall'utente se non via codice... e anche se hai messo un bottone sul form che fa Label1.text := 'file';, NON riuscirai a premerlo perchè l'applicazione sta eseguendo il ciclo.
    Se ho indovinato le tue intenzioni , allora aggiungi questa riga alla fine del ciclo:
    codice:
    Application.ProcessMessages;
    until label1.text = 'fine';


  3. #3
    grazie 100 x avermi kiarito il dubbio ma se voglio ke il file *.txt vado sul desktop la form,a così è sbagliata :
    var
    f:textfile;
    nome : string;
    begin

    randomize;
    nome := IntToStr(random(3)+1);


    assignfile(f, 'c:\'+ nome + '.txt');
    rewrite(f);
    CloseFile(f);

    end;

    end.

    quindi x risolvere come potrei fare=??
    invece x scrivere dentro il file??

    grazie...ciao

  4. #4
    Originariamente inviato da Lillo_hacker
    grazie 100 x avermi kiarito il dubbio ma se voglio ke il file *.txt vado sul desktop la form,a così è sbagliata :
    var
    f:textfile;
    nome : string;
    begin

    randomize;
    nome := IntToStr(random(3)+1);


    assignfile(f, 'c:\'+ nome + '.txt');
    rewrite(f);
    CloseFile(f);

    end;

    end.

    quindi x risolvere come potrei fare=??
    invece x scrivere dentro il file??

    grazie...ciao
    Non ho assolutamente capito qual'è la prima richiesta ...
    Per scrivere (o leggere) in un file di testo, usa
    codice:
    Write(f,'testo'); // oppure Writeln(f,'testo');
    s:=Read(f); // oppure s:=ReadLn(f);

  5. #5
    dicevop se il file txt lo vorrei salvare sul desktop ke pèercorso metto??..nn posso + mettere "C:\documents and settings\desktop" quindi come metto???..
    grazie

  6. #6
    Originariamente inviato da Lillo_hacker
    dicevop se il file txt lo vorrei salvare sul desktop ke pèercorso metto??..nn posso + mettere "C:\documents and settings\desktop" quindi come metto???..
    grazie
    Devi mettere "C:\documents and settings\NomeDelTuoAccountWindows\Desktop\"

  7. #7
    mettendo così nn funziona :master: :
    var
    f:textfile;
    nome : string;

    begin

    randomize;
    nome := IntToStr(random(3)+1);

    assignfile(f, 'C:\Documents and Settings\All Users\Desktop'+ nome + '.txt');
    rewrite(f);
    CloseFile(f);

    end;

    end.

    cosa c'è di sbagliato..
    ciao ciao
    cmq il mio accaunt msn è : LilloZ_hacker@hotmail.it..se mi aggiungi..
    grazie

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.