Zitat:
Der String wird terminiert. Das mit dem Copy wird auch mit deinem Prinzip sehr schwer, da sich die Zeichenfolge in der einen Datei z.B. 5 Zeichen lang ist und in der Anderen z.B. 7. Wir sollten dem Fehler auf den Grund gehen, anders geht es nicht, selbst wenn ist es sehr schlecht und fehleranfällig.
Ja ! Versuche dir ja zu helfen.
Hätte auch eine Lösung anzubieten.
Simple
Delphi-Quellcode:
Var
RTitle: Shortstring;
RArtist: Shortstring;
procedure TForm1.OpenPBClick(Sender: TObject);
var
TagsData: PTagsData;
begin
if not opendialog1.Execute then
exit;
ClearAll;
lblFileName.Caption := opendialog1.FileName;
SavePB.Enabled := true;
New(TagsData);
try
OpenWMAFile(opendialog1.FileName, TagsData);
fFilesize.Text := inttostr(TagsData.FileSize) + ' bytes';
fDuration.Text := DurationToStr(TagsData.Duration, true) + ' sec ';
fBitRate.Text := inttostr(TagsData.BitRate div 1000) + ' kbit';
fVBR.Text := booltostr(Tagsdata.VBR, true);
fEncoder.Text := TagsData.Version;
fGenre.Text := TagsData.Genre;
fArtist.Text := TagsData.Author;
fComposer.Text := TagsData.Composer;
fTitle.Text := TagsData.Title;
fAlbum.Text := TagsData.Album;
fYear.Text := TagsData.Year;
fTrack.Text := TagsData.Track;
fURL.Text := TagsData.Url;
fCopyRight.Text := TagsData.CopyRight;
fComments.Text := TagsData.Comments;
fLyrics.Text := TagsData.Lyrics;
finally
DisPose(TagsData);
end;
// Schau hier das wars!
RTitle := fTitle.Text;
RArtist := fArtis.Text;
s := RArtist + ' - ' + RTitle + ' [' + trim(DurationMinSec(IntToStr(GetSongLength))) + ']';
end;
Bei mir wird beim Debuggen alles einwandfrei ohne zusätze angezeigt.
EDIT: Könnte reichen wenn du deine Strings mal nach ShortString ändern würdest!
Gruß