Página 1 de 1

error e0021 incorrect numbr of arguments: file

Enviado: 03 Jul 2013 18:42
por porter
ola pessoa, tenho um comando assim:

if !file("&indice1..NSX","&indice2..NSX","&indice3..NSX","&indice4..NSX","&indice5..NSX")
contador := 99
endif

na primeira linha esta dando erro:
Error E0021 Incorrect number of arguments : File

passed 5
expected 1

se fizer assim nao da erro, porque se passar mais de um parametro, da erro ?

if !file("&indice1..NSX")
contador := 99
endif

obrigado.

error e0021 incorrect numbr of arguments: file

Enviado: 03 Jul 2013 18:54
por Pablo César
Que eu saiba o File() é só para um arquivo, por isso dá erro. Você poderia utilizar esse nomes numa matriz que fica muito mais prático de manipular.

Código: Selecionar todos

aFile:={"File1.nsx","File2.nsx"}
For i=1 to Len(aFile)
    If file(aFile[i])
    Endif
Next
O que achei estranho também são os dois pontinhos antes da extensão do arquivo.

error e0021 incorrect numbr of arguments: file

Enviado: 03 Jul 2013 18:56
por Jairo Maia
Olá Porter,

A função File() aceita apenas um parâmetro. Para você verificar a existência de mais de um arquivo, proceda assim por exemplo:

Código: Selecionar todos

if !file("&indice1..NSX") .Or. !file("&indice2..NSX") .Or. !file("&indice3..NSX") .Or. !file("&indice4..NSX") .Or. !file("&indice5..NSX")

// ação

EndIf

error e0021 incorrect numbr of arguments: file

Enviado: 03 Jul 2013 19:11
por porter
ha entendi, no clipper compila normalmente, no xHarbour é diferente.

valeu pessoal, obrigado, agora deu certo.

error e0021 incorrect numbr of arguments: file

Enviado: 03 Jul 2013 19:16
por Jairo Maia
Olá Pablo,
Pablo César escreveu:O que achei estranho também são os dois pontinhos antes da extensão do arquivo.
O primeiro ponto pertence a Macro, e o segundo a String.

Como ele usou a macro e string no mesmo bloco, precisa ser assim:

Código: Selecionar todos

!file("&indice5..NSX")
Para dispensar o segundo ponto, precisaria ser assim:

Código: Selecionar todos

!file("&indice5" + ".NSX")