Announcement

Collapse
No announcement yet.

Blockwrite begrenzt?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Blockwrite begrenzt?

    Hallo,<br>

    Riesenproblem! Bei mir funktioniert BlockWrite ab einer bestimmten Größe<br> zu schreibender Bytes nicht mehr.<br>
    IOResult=30 oder 31, also (integer) constant expected. Für kleinere Werte<br> habe ich keine Probleme!!!<br>
    Bei mir liegt die Grenze bei etwa 67.850.000 Bytes, was ja im CD- <br>(oder DVD-) Zeitalter nun wirklich keine große Zahl ist.<br>
    Ist das bekannt? Bzw. was kann man da machen?<br>

    Gruß<br>
    Matthias

  • #2
    Je nach record size des files willst du wahrscheinlich mehr als MaxInt Daten schreiben

    Comment


    • #3
      Hallo,<br>

      danke für die schnelle Antwort.<br>
      Ich dachte auch erst, dass MaxInt das Problem ist, aber das kann es <br>eigentlich nicht sein.<br>
      Beispiel:<br>
      Satzlänge der Quelldatei und der Zieldatei jeweils 1 Byte.<br>
      Gelesen: 100.000.000 Bytes -> keine Probleme bei allen Teilen der Quelldatei<br>
      Geschrieben: 100.000.000 Bytes (!). Bei dem (den?) ersten Teilen <br>manchmal keine (!!!) Probleme. Oft aber eben IOResult=30 oder 31. <br>Geschrieben werden aber trotzdem soviele Bytes. Fragt sich nur, <br>ob das dann richtig wird?<br>

      Ich überlege schon, ob ich auf die API direkt zurückgreife und <br>WriteFile benutze...<br>

      Unter welchem Hilfebegriff findet man eigentlich die Beschreibung des <br>FileHeaders? (Z. Bsp. FILE.handle u. ä.) Habe ich wiedermal vergessen.<br>

      Gruß<br>
      Matthia

      Comment


      • #4
        Hallo Matthias,<br>
        <br>
        DEN Fileheader gibt es nicht, das hängt ja davon ab, was für eine Datei Du gerade anfasst. Oder meintest Du was anderes?<br>
        <br>
        Ciao<br>
        Chri

        Comment


        • #5
          Warum willst du eigentlich 100 Megabyte Daten auf einmal schreiben? Welches Windows benutzt du?<br>
          Bei solch grossen Datenmengen muss man damit rechnen das Windows auf Platte auslagert was das Zeitverhalten unkalkulierbar macht

          Comment


          • #6
            Hallo,<br>

            es gab bei Pascal mal einen FileRec und einen TextRec.<br>
            Aber die scheinen unter Delphi nicht mehr zu existieren. Schade!!!<br>
            Wie bekommet man denn nun eigentlich den FileHandle?<br>

            Im Prinzip brauche ich natürlich keine 100MB zu schreiben.<br>
            Ich hatte nur letztens das Problem, dass ich eine DVD mal zum Testen<br>
            gerippt habe und nun für CD eine 700MB-große und eine kleinere Datei<br>
            hatte. Mein Brenner ist aber sehr alt und kann mit 700MB nicht umgehen.<br>
            Und da ich mal etwas zum Dateitrennen geschrieben habe, wollte ich<br>
            die große Datei nun auftrennen. Das Zeitverhalten spielt da kaum eine<br>
            Rolle (Das Rippen dauert auf jeden Fall WESENTLICH länger).<br>
            Erstaunlicherweise hatte ich dann eben völlig unerwartet dieses<br>
            BlockWrite-Problem. Nun interessiert mich natürlich, was da los ist.<br>
            Vielleicht haben die Borländer ja nur vergessen, alles für LongInt oder so<br>
            richtig anzupassen.<br>

            Gruß<br>
            Matthia

            Comment


            • #7
              Hallo Mathias,<br>
              <br>
              um ein Handle auf eine Datei zu bekommen, kannst Du CreateFile, oder, etwas leichter zu handhaben, FileOpen / FileCreate benutzen. Letztere rufen intern auch nur CreateFile auf.<br>
              <br>
              Ciao<br>
              Chri

              Comment


              • #8
                Schaem Dich! Schaendlicher DVD-Ripper

                Comment


                • #9
                  Hallo,

                  vielen Dank an alle.
                  Ich glaube, ich weiß was nicht funktioniert. Muss ich aber noch genauer prüfen...<br>
                  WriteFile aus der Win-API sagt: "Vom angegebenen Gerät kann nicht gelesen werden".<br>
                  Da ich den Puffer natürlich im RAM angelegt habe, dürfte es also um einen Fehler im RAM gehen. <br>
                  Wenn ja, ist die Fehlerausschrift reichlich irreführend!<br>

                  Gruß (für Robert: vom schändlichen DVD-Ripper)<br>
                  Matthia

                  Comment

                  Working...
                  X