Strona: [  << <   1   > >>  ]  z  1     
Autor Temat: plik tekstowy
szu




Typ: neutral
Postów: 15
Zarejestrowany: Nov 2004
plik tekstowy

Witam
Mam problem z plikiem tekstowym, ktory jest zapisany w tej formie :
| Dziewczynka |  Czas pozostały:  96 s | Ilość  punktów:  32 |
Chcialbym zeby w odpowiednich TextBox byly zaspisywane te dane (to wiem jak zrobic), ale zeby nie wyswietlalo np: "Czas pozostały:  96 s", tylko same "96" bez tego "Czas pozostaly:". czyli zeby wyswietlalo same wyniki (liczby) tam gdzie one sa i itd

01-12-2004 12:25
Pokaż profil szu  Wyślij email do szu   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

A po co zapisujesz plik w nieodpowiadającej Ci formie.?


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

01-12-2004 13:50
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
szu




Typ: neutral
Postów: 15
Zarejestrowany: Nov 2004

bo takie mam zadnaie

01-12-2004 14:01
Pokaż profil szu  Wyślij email do szu   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

Hmmm a znasz instrukcje Left,Right, IsNumeric oraz Len


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

01-12-2004 14:11
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
szu




Typ: neutral
Postów: 15
Zarejestrowany: Nov 2004

nie moge uzywac left ani right, bo w tych plikach jest rozna dlugos rekordow i by mi ucinalo

01-12-2004 14:27
Pokaż profil szu  Wyślij email do szu   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

"Czas pozostały:  96 s", tylko same "96" bez tego "Czas pozostaly:". czyli zeby wyswietlalo same wyniki (liczby) tam gdzie one sa i itd
Dim A as integer,TEKST as integer,C as Integer
dim APrawa as String
AL=len("Czas pozostały:  " )' mamy podstawę jednej długości
AP=len(" s" ) ' i drugiej długości

TEKST=len("Czas pozostały:  96 s" )' mamy całą długość tekstu
C = TEKST - AL
APrawa=Right("Czas pozostały:  96 s",C)' mamy już tylko tekst z prawej czyli= "96 s"
C = Len(APrawa) - AP
TEKST=LEFT(APrawa,C)' i gotowe


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

01-12-2004 14:46
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
szu




Typ: neutral
Postów: 15
Zarejestrowany: Nov 2004

Dzieki, ale ja nie moge wpisywac za kazdym razem calej dlugosci wyrazu, pozniewaz w rozndych rekoradach i roznych plikach mam rozne wyniki (96 s, 101 s, i itd)

01-12-2004 15:09
Pokaż profil szu  Wyślij email do szu   
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004

AL=len("Czas pozostały:  " )' mamy podstawę jednej stałej długości po lewej stronie
AP=len(" s" ) ' i drugiej stałej długości po prawej stronie
Zgadza się.? i pozostaje nam do odgadnięcia tylko wartość liczbowa


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

01-12-2004 15:25
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
karolinavb




Typ: neutral
Postów: 468
Zarejestrowany: Jan 2003

... a cyfrę mozna np tak

Function Cyfra() As String
Dim APrawa As String
Dim znak As String
Dim i As Integer
Dim maxLen As Integer
APrawa = "Czas pozostały:  96 s"
APrawa = Replace(APrawa, "Czas pozostały:", "" )
'''' albo tak jak Piotr wyżej i od tego miejsca można tak albo na kilka innych sposobów
maxLen = Len(APrawa)
For i = maxLen To 1 Step -1
    If IsNumeric(Mid(APrawa, i, 1)) Then
        Cyfra = Trim(Left(APrawa, i))
        Exit For
    End If
Next
End Function


_____________________________________________
Karolina

01-12-2004 20:47
Pokaż profil karolinavb  Wyślij email do karolinavb   
losmac
"profesorek"




Typ: neutral
Postów: 758
Zarejestrowany: May 2003

albo tak:
masz dwa cudzysłowy, więc obcinasz pierwszy z lewej i ostatni znak z prawej
stmp = Mid(2,stmp,Len(stmp)-2)


_____________________________________________
POSTULATY STARUSZKA:
1) Ludzie, dbajcie o polszczyznę!!!
2) Ludzie, zadawajcie kompletne pytania, a nie rzucacie ochłapy i trzeba się domyślać o co chodzi!!!

Powodzenia
Maciej Łoś

01-12-2004 22:39
Pokaż profil losmac  Wyślij email do losmac   Odwiedź stronę losmac  
szu




Typ: neutral
Postów: 15
Zarejestrowany: Nov 2004

Dzieki ale funkcja mid  to juz probowalem i uciana mi w innych plikach tekst, a ja nie moge wpisywac
APrawa = "Czas pozostały:  96 s
TEKST=len("Czas pozostały:  96 s" ) bo moj plik wyglada tak | Czas pozostały:  93 s |punktów:  32 |
        | Czas pozostały:  102 s |punktów:  23 | i tak pare jeszcze kolum i wierszy

01-12-2004 23:31
Pokaż profil szu  Wyślij email do szu   
szu




Typ: neutral
Postów: 15
Zarejestrowany: Nov 2004

Szkoda ze zaden z was nie ma gg zebym mogl wytlumaczyc o co mi dokladniej chodzi ale dzieki bardzo za checi

01-12-2004 23:40
Pokaż profil szu  Wyślij email do szu   
DJK



Typ: neutral
Postów: 871
Zarejestrowany: Feb 2004

a po co w ogóle używać plików tekstowych skoro możesz użyć INI


_____________________________________________
Jeśli można coś zrobić w sposób optymalny to czemu nie

01-12-2004 23:58
Pokaż profil DJK  Wyślij email do DJK   Odwiedź stronę DJK  
Piotr T




Typ: neutral
Postów: 176
Zarejestrowany: May 2004


Szkoda ze zaden z was nie ma gg zebym mogl wytlumaczyc o co mi dokladniej chodzi ale dzieki bardzo za checi


Prześlij mi ten plik tekstowy - chciałbym się zapoznać z jego strukturą i ewentualnie wklej tu kawałek kodu, który używasz do odczytu tego pliku


_____________________________________________
Visual Basic.NET - Mercedes dla programistów

02-12-2004 08:19
Pokaż profil Piotr T  Wyślij email do Piotr T   Odwiedź stronę Piotr T  
szu




Typ: neutral
Postów: 15
Zarejestrowany: Nov 2004

Open odOtworz.FileName For Input As #1
Do While Not EOF(1)
Line Input #1, Linia1
DantxtImie.Text = IIf(txtImie.Text <> "", txtImie.Text & vbNewLine, "" & Dane(0)e = Split(Linia1, "|", 12)

02-12-2004 10:30
Pokaż profil szu  Wyślij email do szu   
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Do wartości, o których wiesz, że mają zawierać tylko liczbę, użyj takiej funkcji:

Function ExtractValue(sInput As String) As String
    Dim cChar As Integer
    Dim sTmp As String
    Dim sChar As String
   
    sTmp = sInput
    For cChar = 1 To Len(sTmp)
        If InStr("0123456789", Mid$(sTmp, cChar, 1)) = 0 Then Mid(sTmp, cChar) = " "
    Next
    ExtractValue = Replace(sTmp, " ", ""
End Function

Uwagi:
1) Jeśli potrzebujesz użyć tego np. do liczby niecałkowitej, to do listy "01234567890" dodaj ".,".
2) W nazwie poprzedzajacej liczbę nie może być cyfr, bo one także zostaną wychwycone.


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

02-12-2004 16:05
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Tamgo




Typ: neutral
Postów: 129
Zarejestrowany: Aug 2004
Pytanie do Karoliny_vb i do Marcina_an

Oboje używacie - chyba - funkcji Replace. Czy możecie mi wytłumaczyć do czego służy, w teorii nie odnalazłem zastosowania.

Dziekuję Tamgo

[Post edytowany dnia 04-12-2004 08:23 przez Tamgo]

04-12-2004 08:22
Pokaż profil Tamgo  Wyślij email do Tamgo        4484571
HejHo




Typ: neutral
Postów: 66
Zarejestrowany: Apr 2003

Zamienia jeden ciąg znaków w tekście na inny i zwraca wynik.
wynik = Replace(tekst,pierwszy_ciag,drugi_ciag)

04-12-2004 11:54
Pokaż profil HejHo  Wyślij email do HejHo        6384729
marcin_an
Forumowicz




Typ: neutral
Postów: 1265
Zarejestrowany: Mar 2004

Dokładniejszy opis dla potrzebujących:
Funkcja Replace zamienia wszystkie lub określone ciągi znaków na inne w podanym Stringu.

Składnia:
Wynik = Replace(expression, find, replacewith[, start[,count[,compare]]])

Argumenty:
expression - ciąg znaków, który am zostać poddany obróbce (wymagane; wyrażenie typu String)
find - ciąg znaków, który ma zostać znaleziony (wymagane; wyrażenie typu String)
replacewith - ciąg znaków, na który ma zostać zamieniony szukany ciąg (wymagane; wyrażenie typu String)
start - powiększony o 1 numer znaku, od którego ma się rozpocząć szukanie (opcjonalne; wyrażenie typu Long, domyślnie: 1). Uwaga: zwracana wartość zaczyna się od tego znaku - wszystko, co jest wcześniej, zostaje ucięte!
count - liczba ciągów, która ma zostać zamieniona. Np. jeśli chcesz zamienić tylko 2 pierwsze znalezione, wpisujesz 2. Wartość -1 oznacza zamianę wszystkich znalezionych ciągów znaków (opcjonalne; wyrażenie typu Long lub Integer (nie jestem pewien); domyślnie: -1)
compare - tryb porównywania:
  -1  Ustawienia Option Compare
    0  Porównanie binarne
    1  Porównanie tekstowe
(opcjonalne)


_____________________________________________
Jedzonko dla Google'a:
Forum na temat Visual Basic, C, C++, Pascal, Programowanie, API, PHP, VBA, VB.NET, QBasic, VBScript, Komputery
Moja strona o wszystkim

04-12-2004 13:56
Pokaż profil marcin_an  Wyślij email do marcin_an   Odwiedź stronę marcin_an  
Wszystkich odpowiedzi: 18 :: Maxymalnie na stronę: 20
Strona: [  << <   1   > >>  ]  z  1