Array
(
)

Código VB para Delphi

Mjr
   - 09 jun 2005

Aeh Galera, Tudo em cima?

Seguinte, tô precisando passar esse código VB pra delphi 2005 ASP.NET e não tô conseguindo algumas partes :( :
#Código


Function AbreArquivo(sArquivo As String) As String
Dim iARQ As Integer
Dim sLinha As String
Dim sResult As String

iARQ = FreeFile
Open sArquivo For Input As iARQ
Do While Not EOF(iARQ)
*Pega o conteúdo da linha
Line Input #iARQ, sLinha

*Quebra a linha e concatena (soma) o resultado
sResult = sResult + Chr(13) & Chr(10) + sLinha
Loop

AbreArquivo = sResult

Fecha o arquivo
Close iARQ
End Function


Se alguém souber como faz e puder me ajudar serei grato. :lol:

Até mais.

mjr.


Mjr
   - 09 jun 2005

Na Verdade,

estou querendo só abrir um arquivo texto em um TextBox no D2005, se alguém souber de um jeito mais fácil e puder me passar serei grato. :D

mjr


Sanses
   - 09 jun 2005

Olá

Faz o seguinte: Declare System.IO no uses do seu webform e coloque estas linhas no load da página:

#Código


var
arq : FileStream;
ler : StreamReader;
begin
Arq := FileStream.Create(´C:\www\aspnet\web\arquivo.txt´, FileMode.OpenOrCreate, FileAccess.Read);
try
ler := StreamReader.create(arq);
try
ler.BaseStream.Seek(0, SeekOrigin.&Begin);
while ler.Peek <> -1 do
listbox1.Items.add(ler.ReadLine);
finally
ler.Close;
end;
finally
arq.Close;
end;
end;


Atente para que o arquivo texto exista no diretório.

É bem simples, quase não muda muito do win32

Sanses


Mjr
   - 09 jun 2005

Sanses,

:D Muito Obrigado, o código funcionou exatamente como eu queria, porém qual o path que tenho que colocar quando for publicar a pagina, por exemplo: localmente utilizo ´e:\db\pagina\desc\´+ arquivo. quando publicar é só: ´\desc\´+ arquivo?

Ah, e a função que você passou não retorna caracteres acentuados ou o cedilha, tenho que tirá-los do texto ou tem uma maneira de retornar caracteres acentuados? :lol:

Desde já agradeço.

mjr.


Sanses
   - 09 jun 2005

olá

Para o path use MapPatch.

Para os caracteres especiais eu não havia reparado, vou dr uma olhada e ver o que pode ser feito.

Sanses


Sanses
   - 06 jul 2005

Olá

Para carregar também os caracteres acentuados faça assim:
#Código


var
ler : StreamReader;
Begin
try
ler := StreamReader.create(´C:\inetpub\wwwroot\www\aspnet\web\arquivo.txt´, UTF7Encoding.get_UTF7);
try
ler.BaseStream.Seek(0, SeekOrigin.&Begin);
while ler.Peek <> -1 do
listbox1.Items.add(ler.ReadLine);
finally
ler.Close;
end;
finally
arq.Close;
end;


Assim vai aparecer a acentuação e os ´cedilhas´ corretamente.

[]´s
Sanses


Mjr
   - 13 jul 2005

Olá Sanses,

Grato pelo código.

O D2005 não tá aceitando esse UTF7Encoding, sabes me dizer o porque?

grato

mjr.


Sanses
   - 13 jul 2005

Olá

Para que o codigo compile, inclua no uses o namespace System.Text.

[]´s
Sanses


Mjr
   - 20 jul 2005

Sanses,

É o seguinte, criei uma variável string e ao invés de colocar listbox1.items.add(ler.ReadLine), coloquei texto := texto + (ler.ReadLine).
Teoricamente teria que funcionar, mas não aparece nada.

O problema é que quero o texto num textbox.

Você sabe me informar o porque de não estar aparecendo o texto?

grato.

mjr.


Sanses
   - 20 jul 2005

Fiz assim e deu certo:

#Código


var
arq : FileStream;
ler : StreamReader;
texto : string;
begin
Arq := FileStream.Create(´C:\inetpub\wwwroot\www\aspnet\web\arquivo.txt´, FileMode.OpenOrCreate, FileAccess.Read);
try
ler := StreamReader.create(´C:\inetpub\wwwroot\www\aspnet\web\arquivo.txt´, UTF7Encoding.get_UTF7);
try
ler.BaseStream.Seek(0, SeekOrigin.&Begin);
while ler.Peek <> -1 do
//listbox1.Items.add(ler.ReadLine);
texto := texto + (ler.readLine);
finally
ler.Close;
end;
finally
arq.Close;
textbox1.Text := texto;
end;


isso está no onload da página

[]´s
Sanses