AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi "Operator not applicable to this operand type"
Thema durchsuchen
Ansicht
Themen-Optionen

"Operator not applicable to this operand type"

Ein Thema von Nils_13 · begonnen am 10. Aug 2006 · letzter Beitrag vom 10. Aug 2006
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

"Operator not applicable to this operand type"

  Alt 10. Aug 2006, 09:30
Hi,

irgendwie bekomme ich bei einer Endungsüberprüfung vor dem Speichern einer Playlist den Fehler "Operator not applicable to this operand type" Hier der Code (in einem anderen Programm läuft der Code):
Delphi-Quellcode:
procedure TfrmMain.xiSaveClick(Sender: TObject);
begin
  if saveP.Execute then
  begin
    if (ExtractFileExt(saveP.FileName) = '.asx') or if (ExtractFileExt(saveP.FileName) = '.m3u') then
    begin
      if saveP.FilterIndex = 1 then
      begin
        SaveASX(saveP.FileName);
      end;
      if saveP.FilterIndex = 2 then
      begin
        SaveM3U(saveP.FileName);
      end;
    end else
    begin
      if saveP.FilterIndex = 1 then
      begin
        saveP.FileName := saveP.FileName + '.asx';
        SaveASX(saveP.FileName);
      end;

      if saveP.FilterIndex = 2 then
      begin
        saveP.FileName := saveP.FileName + '.m3u';
        SaveM3U(saveP.FileName);
      end;
    end; // Diese Zeile wird bei F9 rot markiert
  end;
end;
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#2

Re: "Operator not applicable to this operand type"

  Alt 10. Aug 2006, 09:33
Hmm, kann ich dir so direkt leider auch nicht sagen, aber mir ist etwas anderes aufgefallen:
saveP.FileName := saveP.FileName + '.m3u'; Was ist, wenn ich als FileName schon "MyPlaylist.m3u" angegeben habe? SChau dir mal ChangeFileExt an, das dürfte etwas "sicherer" sein
  Mit Zitat antworten Zitat
sir-archimedes

Registriert seit: 2. Jan 2006
Ort: Münster
167 Beiträge
 
Delphi 2006 Professional
 
#3

Re: "Operator not applicable to this operand type"

  Alt 10. Aug 2006, 09:39
Naja, wenn die Extensions schon m3u/asx sind, wird der erste Fall angewandt. Allerdings funktioniert das nur, wenn die Endungen klein geschrieben sind...

Aber gibt es nicht eine Eigenschaft von so einem SaveDialog, dass der die passenden Endungen erzwingt? Dann kann man sich das ganze geprüfe sparen.

Auch würde ich nicht den FilterIndex checken, sondern das eher über die Extension machen - denn FilterIndex=1 ist nicht gerade leicht lesbar und wenn du einen zusätzlichen Filter einbaust, kann es sein, dass du mit diesen Zahlen durcheinander kommst und solche Fehler sind u.U. nicht leicht zu finden.
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#4

Re: "Operator not applicable to this operand type"

  Alt 10. Aug 2006, 09:41
Zitat von Nils_13:
if (ExtractFileExt(saveP.FileName) = '.asx') or if (ExtractFileExt(saveP.FileName) = '.m3u') then
Lass das 2. if mal weg
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#5

Re: "Operator not applicable to this operand type"

  Alt 10. Aug 2006, 09:47
Danke, mit ChangeFileExt habe ich es hinbekommen.

@Jelly: Ahh, der rote Kasten hat keine Sommerferien Ok, danke, aber ChangeFileExt ist besser.
  Mit Zitat antworten Zitat
Antwort Antwort


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 07:11 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