orezanie textu   otázka

VB.NET

Dobry den

Prosim Vas o pomoc v orezani casti textu. Z clanku http://www.vbnet.cz/clanek--72-pracujeme... som vytiahol kod :

 Dim sr As New IO.StreamReader(rs.GetResponseStream())
         'projít řádky
         While Not sr.EndOfStream
             Dim s As String = sr.ReadLine()
             'pokud jsme na řádku s dolarem, vytáhnout z něj kurz
             If s.StartsWith("USA|") Then
                 kurz = CDbl(s.Substring(s.LastIndexOf("|") + 1))
             End If
         End While

kod funguje v poriadku ale iba pri requeste , ale ja pouzivam Net.WebClient teda :

Dim msgcache As String
Client1.DownloadString( URL , msgcache ) 

'a ked skusim msgcache.readline napise chybu ze invalid path teda program hlada asi cestu k suboru a potreboval by som nieco ako readstringline viete mi pomoct ?

mam program na chat cez moj FTP server a pri stahovani spravy z FTP by som chcel aby zobrazil iba text pod riadkom v ktorom je napisane _MSG teda by to malo vyzerat takto :

_HEADER01

uzivatel001 'toto je meno uzivatela

_MSG

ahoj 'toto je sprava a je potrebne aby z celeho textu odstranil vyzsi text (_HEADER atd.) a zobrazil iba riadok s ahoj

Predom Dakujem za pomoc :) K.Moser

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

uz sa mi podarilo samemu spravit to a to tak ze som pouzil klasicky GetResponseStream a z neho streamreadera :) ale ak mi viete niekto pomoct spravit to cez hore uvedeny sposob budem rad :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jde o to, že String nemá metodu ReadLine. Pokud chcete číst po řádcích String, místo StreamReaderu použijte třídu StringReader, používá se skoro stejně - voláte ReadLine, v okamžiku, kdy vrátí Nothing, jste na konci textu.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Dakujem za odpoved :)

Nasiel som dalsi problem :( StringReader akoby nedokaze vidiet ze v riadku sa nachadza dany text (zdrojovy kod dole)

Imports System
Imports System.IO
Imports System.Text

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sr As New StringReader(RichTextBox1.ToString)
        Dim s As String = "0"
        While Not s = Nothing
            s = sr.ReadLine()
            'pokud jsme na řádku s prikazom, vytáhnout z něj prikaz
            If s.StartsWith("1") Then
                MsgBox("1")
            ElseIf s.StartsWith("2") Then
                MsgBox("2")
            ElseIf s.StartsWith("3") Then
                MsgBox("3")
            End If
        End While
        'Release all Resources used by StringReader
        sr.Dispose()
        'Close StringReader
        sr.Close()
    End Sub
End Class

Velmi Vas prosim o pomoc Dakujem

K.Moser

nahlásit spamnahlásit spam 0 odpovědětodpovědět

:) problem som opravil , moj program ziskava informacie z ineho programu , ktory vzdy text ukoncuje s riadkom <END> teda mozem pouzit tento kod pre citanie a aj na zistenie konca :)

Dim sr As New StringReader(RichTextBox1.ToString)
        Dim s As String = "0"
        While Not s.Contains("<END>")
            s = sr.ReadLine()
            'pokud jsme na řádku s prikazom, vytáhnout z něj prikaz
            If s.Contains("1") Then
                MsgBox("1")
            ElseIf s.Contains("2") Then
                MsgBox("2")
            ElseIf s.Contains("3") Then
                MsgBox("3")
            End If
        End While
        'Release all Resources used by StringReader
        sr.Dispose()
        'Close StringReader
        sr.Close()

Avsak ak ma niekto volny cas poprosil by som ho o pomoc ako vytvorit podobny okruh ako vyzsie pouzitim while alebo while not.

V starsej odpovedi ste napisali ze na konci obsahu textu vypise spravu nothing a ako dostat kontrolu taku , ze by zistil okruh s while ze s = nothing ?

Skusil som blok s pouzitim try , catch a end try a ten mi pomohol tim ze ked je string reader na konci vypise chybu ze objekt nieje priradeny k ziadnemu text... ale potreboval by som cestu bez zistenia konca na chybe :)

Predom Dakujem za pomoc

S pozdravom K.Moser

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Je to trochu od veci , ale vedeli by ste mi poradit ako co najmenej zatazit FTP server ? pouzitim kodu ako Dim client as new net.webclient , client.downloadstring alebo http web requestom ??

myslim ze asi download string zatazuje menej CPU aj FTP nie ? lebo poziva jeden riadok a request vyse 5 riadkov :)

a myslite ze ked program stahuje kazdych 5 - 120 sekund udaje z FTP serveru je dobre pouzit KeepAlive funkciu ?? , programujem poker hru podobnu tej na facebooku (zynga poker) a tam je velmi rychla - v realnom case a dalo by sa sprawit nieco podobne vo VB .NET aby stahovalo alebo jednoducho bol program stale pripojeny k suboru na FTP a ked by sa zmenil stiahol by udaje a podla toho pokracoval ??

Dakujem za odpoved

S pozdravom K.Moser

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zaprvé zátěž CPU rozhodně nemá žádnou obecnou souvislost s tím, kolik řádků programátor napíše. Třídu WebClient taky musel někdo napsat a co myslíte, že v ní je? Mimo jiné těch 5 řádků volání FtpWebRequestu. A kdo ví, jestli jich nebude víc.

Pokud píšete síťovou hru, tak vyměňování informací přes FTP je velmi hloupá metoda. Typicky si aplikace mezi sebou vytvoří TCP/IP spojení a komunikují přímo. Mrkněte na článek o tom, jak napsat kreslící tabuli po síti, který zde na webu máme. Tam je velmi pěkně vysvětlená síťová komunikace. Dělat to přes FTP je velmi neotřelé.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

no je vidiet ze tomu rozumiete :) , ale FTP som vybral lebo TCP/IP funguje iba na lokalnej siety napr cez 127.0.0.1 ale cez vonkajsiu IP ako 76.128.55.12 vypise chybu ze vzdialeny pc odmietol poziadavku a to aj s vypnutim firewallom a bez antivirusu :) ak mi viete pomoct napriklad s niecim ako socketpermission budem velmi vdaacny :)

s pozdravom K.Moser

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

Viete mi prosim pomoct s tim TCP/IP pripojenim ? lebo programi sa spoja iba na lokalnej siety ale cez vonkajsiu IP sa nespoja :( a este je dost velky problem s firewall :( vo windowse je moznost v registroch na vynimku ale antivirusi to mozu detektovat.... ale to mi az tak nevadi lebo o hackingu viem dost a nemam problem obyst antivirus , ale ide o to ze ked sa snazim pripojit napriklad na moju IP dajme tomu ze je 76.148.55.22 z druhej siete (napriklad kaviarne) z inej vonkajsiej IP napise chybu ze cielovy pc odmietol :( prosim o pomoc dakujem.

som ochotny aj financne prispiet ak je to potrebne.

Predom dakujem za odpoved.

K.Moser

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback