Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
schön, dass es funktioniert... Ähm.. das kann aber nicht sein...
SaveTheWave(Outputfile.Text, Wavbuffer, sizeOf(Header)+1);
Weder meine SaveToFile noch meine SaveToFileAppend haben einen dritten parameter...
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
was ist denn savethewave? Ich kann mir im moment keine kombination meiner funktionen vorstellen, die da zufriedenstellende ergebnisse bringt. obwohl... im beitrag #38, wenn da noch das start und die position-zuweisung drinstehen, dann ist die transferleistung schon erbracht ;)
@Hawkeye219: ahh... das hatte ich zwischendurch schon mal so im hinterkopf... danke! aber ist das denn nicht...
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
Rufst du es auch mit Start = sizeof(Header)+1 auf? sonst liest du das letzte byte vom header noch mit aus.
Wo genau setzt du den Inhalt auf 0? Vielleicht irgendwo, wo danach gleich wieder drüber geschrieben wird bzw. in einer lokalen Variable, wo es gar keine Wirkung hat?
SaveToFileAppend() ist übrigens dafür gedacht, zuerst den header in die Datei zu schreiben und dann die Daten....
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
Ok, benutze einfach mal Read anstelle von ReadBuffer. :)
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
Hmm... eventuell kommst du über den rand hinaus mit dem readbuffer... versuchs mal mit read ohne buffer, evtl. hilft das was.
ich muss mal überlegen... angenommen, wir haben einen header, der 5 bytes lang ist. dann wird als start 6 übergeben, und position = 6.
Angenommen Größe 10, wird ...aaaahhh.... :coder2:
weiter im text. größe der datei 10, dann haben wir noch 4 bytes zu lesen....
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
@Der_Unwissende:
Macht man das nicht seit neuestem so:
TFileStream.Create(FileName, fmOpenRead, fmShareExclusive); //man beachte das Komma
@sonicfire: Du hast den falschen Code von mir kopiert :gruebel: - NEIN verdammt, ich habe den falschen geschrieben! Sorry! das sollte position := Start heissen!
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
Zeig doch ein wenig Code.
Am besten den, in dem der Fehler auftritt
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
Kein Problem.
Streams sind zum verschieben von Datenmengen auf jeden Fall besser als file of-Konstruktionen.
Es gibt übrigens auch TMemoryStream und TResourceStream.
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
Naja...
procedure WasMachenMitWavVonDatei(filename: string);
var Wavbuffer: TSmallIntArray;
i: Integer;
begin
//laden
LoadFromFile(filename, Wavbuffer, sizeof(TWavHeader)+1);
//was machen
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
Jop. Ist bei Pascal einfach Standard, damit man Typen besser von Variablen unterschieden kann.
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
3. Aug 2006
Arrays speichern/laden? Nichts leichter als das:
type
TMyTypeArray = array of TMyType; //TMyType durch fundamentalen typen ersetzen (z.B. Integer, oder ein record mit fudamentalen Typen)
procedure SaveToFile(Filename: string; Value: TMyTypeArray);
begin
Forum: Object-Pascal / Delphi-Language
Delphi
by DGL-luke,
2. Aug 2006
@sonicfire:
Zum Initialisieren eines arrays würd ich ZeroMemory hernehmen.