Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Fehler bei Dateinamen (https://www.delphipraxis.net/136597-fehler-bei-dateinamen.html)

Larsi 6. Jul 2009 12:29

Re: Fehler bei Dateinamen
 
Also egal wie der Dateiname heißt es wird immer ein Umbruch in der Fehlermeldung vor dem .wav gemacht. Woran liegt das?

Zitat:

Zitat von jaenicke
Wie sieht denn der Quelltext dafür konkret aus und was genau steht ggf. in den einzelnen Variablen drin?

Also den Filstream übergebe ich das als Filename. In k steht der Wert eines Items in einem Statuspanel!

Delphi-Quellcode:
'C:\Users\Lars\Desktop\' + k +  '.wav'

Zitat:

Zitat von Teekeks
Es kommt im Pfad ein Leerzeichen vor. An dieser stelle geht er davon aus das der Pfad da zuende ist. Er geht also davon aus das deine Datei Chris heißt und mit den Parametern " Brown - Run It! (Main Version).wav"
Aufgerufen wird.

"Chris" ist aber kein zulässiger Dateiname da keine Endung...

gruß Teekeks

Edit: Natürlich nicht "Lehrzeichen" ^^

Klingt irgendwie sinnig aber ich brauch ja die Leerzeichen in dem Filename, gibts da eine Funktion, die einem da hilft?

MFG Larsi

Sherlock 6. Jul 2009 12:31

Re: Fehler bei Dateinamen
 
Die Funktion heisst Gänsefüßchen (oben).

Wenn Du Deinen Dateinamen inklusive Pfad damit umschließt...dann geht das.

Beispiel:
Delphi-Quellcode:
FileNameString:='"c:\ein Ordner mit Leerzeichen\eine Datei mit Leerzeichen.txt"'

;)

Sherlock

DeddyH 6. Jul 2009 12:32

Re: Fehler bei Dateinamen
 
Wie sieht es denn so aus?
Delphi-Quellcode:
Format('"C:\Users\Lars\Desktop\%s.wav"',[trim(k)])

Larsi 6. Jul 2009 12:36

Re: Fehler bei Dateinamen
 
@DeddyH: Dann kommt der Fehler:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project10.exe ist eine Exception der Klasse EFCreateError mit der Meldung 'Datei "C:\Users\Lars\Desktop\Elefante\"C:\Users\Lars\Des ktop\Shaggy Featuring Rayvon - Angel.wav"" kann nicht erstellt werden. Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------

DeddyH 6. Jul 2009 12:40

Re: Fehler bei Dateinamen
 
Steht der ganze Pfad schon in k, oder wie muss ich das verstehen?

Larsi 6. Jul 2009 12:43

Re: Fehler bei Dateinamen
 
Nein! In k steht nur der richtige Dateiename ohne Pfad. Hab mir k per ShowMessage ausgeben lassen.

DeddyH 6. Jul 2009 12:44

Re: Fehler bei Dateinamen
 
Dann müsste mein Beispiel aber funktionieren. Zeig mal etwas Code, der Fehler muss woanders liegen.

Larsi 6. Jul 2009 12:49

Re: Fehler bei Dateinamen
 
Also es geht mir bei dem ganzen Filename Dingens ja darum, dass wenn man in meinem StreamZ eine Aufnahme startet (über BassdllPlayer), dass die Aufnahme dann heißt wie das aktuelle Lied. Über eine Funktion liefert BassdllPlayer den Titel und Interpreten der Online Streams. Diesen zeige ich direkt in einem Statusbarpanel an. Über die Funktion StartRecording verusche ich den Dateinamen zu übergeben, doch das klappt bei den Titeln ja irgendwie nicht. Viel mehr Code als die Zeile die ich gepostet habe steckt da nicht hinter. Hier mal die Funktion StartRecording von Bassdllplayer:
Delphi-Quellcode:
procedure TBassdllPlayer.StartRecording(Input: integer; FileName: string);
var
  i: Integer;
begin
  //F ile Stream
  WaveStream := TFileStream.Create(FileName, fmCreate);

  if WaveStream.Size > 0 then
  begin // free old recording
    BASS_StreamFree(Channel);
  end;

  // generate header for WAV file
  WaveHdr.riff := 'RIFF';
  WaveHdr.len := 36;
  WaveHdr.cWavFmt := 'WAVEfmt ';
  WaveHdr.dwHdrLen := 16;
  WaveHdr.wFormat := 1;
  WaveHdr.wNumChannels := 2;
  WaveHdr.dwSampleRate := 44100;
  WaveHdr.wBlockAlign := 4;
  WaveHdr.dwBytesPerSec := 176400;
  WaveHdr.wBitsPerSample := 16;
  WaveHdr.cData := 'data';
  WaveHdr.dwDataLen := 0;

  WaveStream.Write(WaveHdr, SizeOf(WAVHDR));
  i := 0;
  while BASS_RecordSetInput(i, BASS_INPUT_OFF) do
  begin
    i := i + 1;
  end;
  BASS_RecordSetInput(input, BASS_INPUT_ON);

  // start recording @ 44100hz 16-bit stereo
  recordchannel := BASS_RecordStart(44100, 2, 0, @RecordingCallback, 0);
  if recordchannel = 0 then
  begin
    ShowMyMessage('Die aufnahme kann nicht gestarted werden.', TRUE);
    WaveStream.Free;
  end;

  isRecording := True;
end;

DeddyH 6. Jul 2009 12:59

Re: Fehler bei Dateinamen
 
Tja, dann würde ich Filename einmal analysieren, da scheint ein Zeilenumbruch drinzustehen.

Larsi 6. Jul 2009 13:02

Re: Fehler bei Dateinamen
 
Wie analysiere ich den denn? :|


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:00 Uhr.
Seite 2 von 4     12 34      

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