Jump to content
Sign in to follow this  
Medabi

Ajuda para ler dados em arquivo. (Resolvido)

Recommended Posts

boa tarde a todos

 

bom eu tenho a seuginte source

 

 

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Form1", 331, 150, 192, 124)
$Input1 = GUICtrlCreateInput("", 128, 32, 121, 21)
$Button1 = GUICtrlCreateButton("Buscar DDD", 136, 96, 75, 25)
GUICtrlSetOnEvent(-1, "Button1Click")
$Label1 = GUICtrlCreateLabel("Localidade", 64, 32, 56, 17)
$Label2 = GUICtrlCreateLabel("DDD:", 112, 64, 31, 17)
$Label3 = GUICtrlCreateLabel("", 152, 64, 28, 20)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
    Case $GUI_EVENT_CLOSE
        Exit
    Case $Button1
        Button1Click()

EndSwitch
WEnd

Func Button1Click()
If GUICtrlRead($Input1) = "11581" Then
GUICtrlSetData($Label3, "17")
EndIf
If GUICtrlRead($Input1) = "11374" Then
GUICtrlSetData($Label3, "17")
EndIf
If GUICtrlRead($Input1) = "11642" Then
GUICtrlSetData($Label3, "17")
EndIf
If GUICtrlRead($Input1) = "11832" Then
GUICtrlSetData($Label3, "18")
EndIf
If GUICtrlRead($Input1) = "11629" Then
GUICtrlSetData($Label3, "17")
EndIf
If GUICtrlRead($Input1) = "11512" Then
GUICtrlSetData($Label3, "14")
EndIf
If GUICtrlRead($Input1) = "11450" Then
GUICtrlSetData($Label3, "18")
EndIf
If GUICtrlRead($Input1) = "11391" Then
GUICtrlSetData($Label3, "18")
EndIf
If GUICtrlRead($Input1) = "11364" Then
GUICtrlSetData($Label3, "18")
EndIf
If GUICtrlRead($Input1) = "12052" Then
GUICtrlSetData($Label3, "18")
EndIf
If GUICtrlRead($Input1) = "11588" Then
GUICtrlSetData($Label3, "17")
EndIf
If GUICtrlRead($Input1) = "11241" Then
GUICtrlSetData($Label3, "14")
EndIf
If GUICtrlRead($Input1) = "12206" Then
GUICtrlSetData($Label3, "18")
EndIf
If GUICtrlRead($Input1) = "12080" Then
GUICtrlSetData($Label3, "17")
EndIf
If GUICtrlRead($Input1) = "12080" Then
GUICtrlSetData($Label3, "17")
EndIf
If GUICtrlRead($Input1) = "12274" Then
GUICtrlSetData($Label3, "15")
EndIf

EndFunc

 

 

como podem repara sempre que alguem digitar um determinado numero na input a label vai apresentar o que seria o DDD da localidade

 

pois bem

 

acontece q tem mais de 2mil localidades diferentes

 

e fazer um por um ia demora mto

 

o que eu gostaria de saber e o seguinte

 

eu tenho um arquivo de texto organizado assim

 

ex: 11892|11

 

como eu posso fazer para o autoit ir ate esse arquivo e caso a pessoa tenha digitado um desses numeros anteos do *|* ele apresenta o numero em sequencia dele

 

como por exemplo o kra digitou 11789 la na imput ai o autoit vai ate esse arquivo procura e caso encontre apresentar na label o ddd dessa localidade

 

quem puder ajudar desde ja obrigado

Share this post


Link to post
Share on other sites

For $i = 1 To 10000
If StringLeft(FileReadLine("Arquivo.txt",$i),5) = GUICtrlRead($Input1) Then
    MsgBox("","",StringRight(FileReadLine("Arquivo.txt",$i),2))
    ExitLoop
EndIf
Next

 

Fiz Essa Source Agora,

 

Deve Funfar :D

Share this post


Link to post
Share on other sites

bom aki nao deu certo

 

fiz exatamente como no seu exemplo porem o que acontece

 

quando a input esta em branco a msg box vem sem nada

 

porem quando eu coloco la a localidade na input nao acontece nada

 

sera q fiz errado?

Share this post


Link to post
Share on other sites

Medabi

 

$LocalArquivo = FileRead(@DesktopDir & '\localidade.txt') ; ' Lê o conteúdo do arquivo .txt '
$rInput1 = GuiCtrlRead($Inpu1) ; ' Aqui ele lê o que está no $Input1  '

$StringRegExp = StringRegExp($LocalArquivo, $rInput1 & "(.*)", 1) ; ' Aqui é a função StringRegExp, verifica uma string equivalente a um determinado padrão de expressão.'
' Minhas palavras : Ele compara o conteúdo do .txt, com o code ( Expressão regular ) e extrai tudo o que estiver depois do $rInput1. " (.*) - Aqui ele faz pegar o resto depois da palavra ou numero contido no Input ", com Flag 1 - Pega somente uma característica. '

If IsArray($StringRegExp)Then $StringRegExp = StringReplace($StringRegExp[0], "|", "") ; 'Verifica se a Variavel eh um Array ( Se contém algum conteúdo extraido ), se for um array ele da Replace ( Substitui o "|" para "" ) '
; ' Porque eu coloquei o StringReplace, porque como eu ja tinha explicado ali no StringRegExp ele pega tudo que estiver depois do Input1, entao ele vai pegar o "|<number>", assim ele da um replace para remover o "|" .'
GUICtrlSetData($Label3, $StringRegExp) ; ' Aqui voce ja sabe neah, muda o dado do controle $Label3 para $StringRegExp - Palvra extraida '

 

B)

Share this post


Link to post
Share on other sites

bom nao sei pq nao estou conseguindo upar o arquivo original da erro toda hora

 

bom fiz um q esta igual ao original ele fica na desktop

 

arquivo txt

 

so nao tem todas as localiodades nele

Share this post


Link to post
Share on other sites

RvB.SvnhO *

 

mano deu certo aki

 

mto obrigado pela ajuda rsrs

 

so uma pergunta

 

se nao for pedir mto vc poderia me explicar +ou - a source para que eu possa entender melhor ela e nao vir a postar duvidas relacionadas?

 

desde ja obrigado

Share this post


Link to post
Share on other sites

Em comum acordo a moderação decide manter o tópico aberto para postagem de outras dúvidas relativas a este mesmo assunto.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this  

×