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

    [delphi] problemi con database

    Ciao a tutti, sto implementando una libreria che, per il suo funzionamento, deve caricare un elenco di stringhe salvate in un file chiamato database.txt che a sua volta è salvato nella stessa directory della mia unit...Il problema è che quando arrivo al caricamento del file mi dice EFOpenError impossibile caricare / aprire file....
    utilizzo queste tre righe di comando:

    var database:TStringList;
    ....
    database:=TStringList.create;
    database.loadFromFile('database.txt'); // qui mi da errore

    Eppure il file esiste ed è nella stessa directory....inoltre la cosa è strana perchè queste istr le metto ora nella mia libreria affinchè l'utilizzatore che la richiama nel programma in cui la userà non debba gestire database, ma in un primo MOMENTO, lasciaVo questa possibilità al programmatore. in un ex. quindi avevo aperto il database da una unit esterna con gli stessi comandi e non mi dava nessun errore...
    NaTURALMENTE ORA CHE GESTISCO IL TUTTO DALLA LIBRERIA QUESTA SEZIONE DELLA UNIT ESTERNA NON C'E' PIU' QUINDI ERRORE NON E' DOVUTO NEANCHE A QUESTO....
    NON SO PIU' DOVE SBATTERE IL CRANIO
    re dei giovani

  2. #2
    Hai provato a passargli anche la cartella al nome file
    La puoi ricavare tramite "ExtractFilePath(Paramstr(0))".
    Se ancora non te lo carica... non ricordo se la TStringList ha un limite di 64K sulla dimensione massima del suo testo...
    Semmai prova ad usare un TFileStream, che è fatto apposta x il caricamento e la gestione di file

    PS : Cambia il titolo, sembra si parli di RDBMS e SQL.

    Ciao

  3. #3
    Grazie mille ora funziona....il codice...mi rimane invece un dubbio logico....come mai non funzionava prima? Vero io gli passavo solo il nome del file database.txt , ma è anche vero che questo si trova nella stessa directory della unit in cui viene aperto....come mai allora non mi accettava questa ricerca diretta?
    re dei giovani

  4. #4
    dipende da dove è l'esecutivo. Se lo lanci da ide e in una cartella temperonea
    ciao
    sergio

  5. #5
    una piccola rettifica, non è in una cartella temporanea, comunque la directory di riferimento è dove risiede il file exe
    ciao
    sergio

  6. #6
    Originariamente inviato da re dei giovani
    Grazie mille ora funziona....il codice...mi rimane invece un dubbio logico....come mai non funzionava prima? Vero io gli passavo solo il nome del file database.txt , ma è anche vero che questo si trova nella stessa directory della unit in cui viene aperto....come mai allora non mi accettava questa ricerca diretta?
    Il problema si può verificare anche quando il collegamento sul desktop al programma è senza la cartella di lavoro compilata. In questo caso la "workdir" diventa quella del sistema operativo in quel momento, e allora succedono di queste cose.
    Per esperienza t posso dire che è sempre buona cosa lavorare con i nomi file completi.

    Ciao

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 © 2025 vBulletin Solutions, Inc. All rights reserved.