AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Dynamische Arrays ... kleines Problem!

Ein Thema von sonicfire · begonnen am 2. Aug 2006 · letzter Beitrag vom 4. Aug 2006
Antwort Antwort
Seite 3 von 7     123 45     Letzte » 
Benutzerbild von BlackJack
BlackJack

Registriert seit: 2. Jul 2005
Ort: Coesfeld
246 Beiträge
 
Delphi 2005 Personal
 
#21

Re: Dynamische Arrays ... kleines Problem!

  Alt 2. Aug 2006, 23:28
hast du dran gedacht das bei allen BlockReads/BlockWrites zu ändern? weil sowohl Buffer als auch LoopBuffer sind arrays of SmallInt, aber du liest/schreibst immer Length() viele bytes aus, aber du musst immer Length() SmallInts auslesen
See my shadow changing, stretching up and over me.
Soften this old armor. Hoping I can clear the way
By stepping through my shadow, coming out the other side.
Step into the shadow. Forty six and two are just ahead of me.
  Mit Zitat antworten Zitat
sonicfire

Registriert seit: 17. Jan 2006
Ort: Berlin
58 Beiträge
 
#22

Re: Dynamische Arrays ... kleines Problem!

  Alt 2. Aug 2006, 23:31
Zitat von BlackJack:
hast du dran gedacht das bei allen BlockReads/BlockWrites zu ändern? weil sowohl Buffer als auch LoopBuffer sind arrays of SmallInt, aber du liest/schreibst immer Length() viele bytes aus, aber du musst immer Length() SmallInts auslesen
Naja, das merkwürdige ist - lasse ich den letzten "Test" unten weg, ist das Ergebnis 1A! Genau DESWEGEN versteh ich ja die Welt nicht mehr Denn das ist quasi derselbe Schritt, selber Buffer, selbe Datentypen usw ....
  Mit Zitat antworten Zitat
sonicfire

Registriert seit: 17. Jan 2006
Ort: Berlin
58 Beiträge
 
#23

Re: Dynamische Arrays ... kleines Problem!

  Alt 3. Aug 2006, 14:46
Oh man, und jetzt weiss keiner mehr weiter ... *grins*.
Das kann doch alles nicht sein Der Code müsste eigtl. doch funzen - tut es aber nicht ... seufz
  Mit Zitat antworten Zitat
sonicfire

Registriert seit: 17. Jan 2006
Ort: Berlin
58 Beiträge
 
#24

Re: Dynamische Arrays ... kleines Problem!

  Alt 3. Aug 2006, 17:04
Soll ich demjenigen der das zum laufen bekommt 100 Euro zahlen? Lol! Gibts dann eine Antwort?
Man, echt - ich glaub das alles nicht Kann doch nicht sein das ich hier ein unlösbares Problem habe.....! NADA!
  Mit Zitat antworten Zitat
EDatabaseError

Registriert seit: 11. Mai 2005
Ort: Göppingen
1.238 Beiträge
 
Delphi 2007 Professional
 
#25

Re: Dynamische Arrays ... kleines Problem!

  Alt 3. Aug 2006, 17:05
nich soviel pushen
Tobias
It's not a bug, it's a feature.
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#26

Re: Dynamische Arrays ... kleines Problem!

  Alt 3. Aug 2006, 17:50
Arrays speichern/laden? Nichts leichter als das:

Delphi-Quellcode:

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
  with TFilestream.Create(FileName, fmOpenRead) do
    try
      WriteBuffer(Value,length(Value) * sizeof(TMyType));
    finally
      Free;
    end;
end;

procedure SaveToFileAppend(Filename: string; Value: TMyTypeArray);
begin
  with TFilestream.Create(FileName, fmOpenWrite) do
    try
      Position := Size;
      WriteBuffer(Value,length(Value) * sizeof(TMyType));
    finally
      Free;
    end;
end;


procedure LoadFromFile(FileName: string; out Value: TMyTypeArray;Start: Integer = 0);
begin
  with TFilestream.Create(FileName, fmOpenRead) do
    try
      Position := Start;
      setlength(Value, Size-Position);
      ReadBuffer(Value,length(Value));
    finally
      Free;
    end;
end;
Was du jetzt tun musst:

1. Diesen Code in dein Programm kopieren
2. TMyType (alle Vorkommen!) durch SmallInt ersetzen (allerdings solltest du anstatt "SmallIntArray" evtl. "TSmallIntArray" erwägen, das ist so üblicher)
3. Deinen LoopBuffer als SmallInt deklarieren

Der dritte Schritt ist der wichtigste, der Compiler reisst dir sonst den Arsch auf!

Dann kannst du (gerne auch in SaveTheWave) einfach SaveToFileAppend aufrufen, um an deinen Header (für den du das Verfahren mit dem FileStream gerne übernehmen kannst, du könntest auch z.B. den zusätzlichen Parameter "Header" ins savetofile einfügen, und den zuerst schreiben).

Wenn dir Delphi-Referenz durchsuchenwith ... do und Delphi-Referenz durchsuchentry ... finally ... end nichts sagen, solltest du in deine Delphi-Hilfe schauen, da müsste einiges drüber finden.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
sonicfire

Registriert seit: 17. Jan 2006
Ort: Berlin
58 Beiträge
 
#27

Re: Dynamische Arrays ... kleines Problem!

  Alt 3. Aug 2006, 17:54
@EDatabaseError: Verzeihung!

@DGL-Luke: Vielen Dank!! Mal sehen, inwieweit ich das so hinbekomme Wofür steht eigtl. das ewige "T"?
"T"ype? *grins*
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#28

Re: Dynamische Arrays ... kleines Problem!

  Alt 3. Aug 2006, 18:04
Jop. Ist bei Pascal einfach Standard, damit man Typen besser von Variablen unterschieden kann.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
sonicfire

Registriert seit: 17. Jan 2006
Ort: Berlin
58 Beiträge
 
#29

Re: Dynamische Arrays ... kleines Problem!

  Alt 3. Aug 2006, 19:26
@DGL-Luke: Noch eine (blöde?) Frage ? Wie komme ich über TStream eigentlich an meine WAV-Daten heran um sie zu manipulieren?

Quasi:
For b=0 to endeVomBuffer
"WaveData.Buffer[b] := wasauchimmer"

?
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

Registriert seit: 1. Apr 2005
Ort: Bad Tölz
4.149 Beiträge
 
Delphi 2006 Professional
 
#30

Re: Dynamische Arrays ... kleines Problem!

  Alt 3. Aug 2006, 19:41
Naja...

Delphi-Quellcode:
procedure WasMachenMitWavVonDatei(filename: string);
var Wavbuffer: TSmallIntArray;
    i: Integer;
begin
//laden
LoadFromFile(filename, Wavbuffer, sizeof(TWavHeader)+1);
//was machen
for i := 0 to high(Wavbuffer) do
  Wavbuffer[i] .....
end;
Das sizeof(TWavHeader) mache ich, damit er erst nach dem header lädt. Ich habe in dienem Quellcode ja gesehen, dass du zuerst einen Header schreibst. Den überspringe ich damit.
Lukas Erlacher
Suche Grafiktablett. Spenden/Gebrauchtangebote willkommen.
Gotteskrieger gesucht!
For it is the chief characteristic of the religion of science that it works. - Isaac Asimov, Foundation I, Buch 1
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz