| |
|
|
![: 24.09.2011](.././../../i/a/noavatar.gif) | Jetzt versuche ich schon seit Tagen eine txt-Datei einzulesen, aber mein Wissen streikt. Die Datei enthält mehrere Zeilen und Spalten die wie folgt aufgebaut sind: Zeile1: "text";"erklärung";Artikel";"Bemerkung"; usw...... Zeile2:"Wohnugssuche";"Mein Name";"Zeitung";"Rundschau vom 23.08.2011"; usw ... Man sieht also unterschiedliche Größen in den Textzeilen (ohne Zeilex:" davor) Ich brauche eine Listbox wo mir die entsprechende Zeile angezeigt wird, ich diese markieren kann und dann Ausgeben kann in einem Fenster. Aber es soll nicht die ganze Zeile ausgegeben werden, sondern die Werte in String$. Also A1$ soll z.b. "Text" sein, A2$="Erklärung" usw. Die Ausgabe dann in print "Text :" A1$ print "text :" a2$ usw.. Habe mir gedacht es wäre einfach (mit dem Beispiel Csv was hier ein Thema war) aber weit gefehlt. Wer kann mir hier helfen. Hier bisher mein Versuch
Schon mal Danke im voraus für eure Ideen. Frank
'-Begin-----------------------------------------------------------------
Declare Text$, Wahl$, tex$, lin1$, lin2$, lines$[96000],c&
declare Nummer$,Name$
'-Eine große Box zur Anzeige eines Textes-----------------------------
ClearList
Assign #1,"h:\test\beispiel.csv"
Reset #1
input #1,lin1$
input #1,lin2$
WhileNot @Eof(#1)
Input #1,Name$
lines$[c&]=Name$
inc c&
AddString Name$
EndWhile
Close #1
tex$ = @ListBox$("csv",1)
cls
print substr$(lines$[tex$],2,"\\")
waitinput
'-End-------------------------------------------------------------------
End
|
|
|
| |
|
|
|
![Nico Madysa: 24.09.2011](.././../../i/a/13527651904b3fcf583c5c0.png) Nico Madysa | ListBox$ gibt als Ergebnis nicht die Nummer der Zeile aus, sondern die ausgewählte Zeile als String. Es sollte also eher heißen:
Da Tex$ ein String ist, ist es keine Zahl, in den eckigen Klammern haben aber nur Zahlen etwas verloren.![](.././../../i/s/__upl_ext_1111498539.gif) |
|
|
| |
|
|
|
![Jörg Sellmeyer: 24.09.2011](.././../../i/a/8132362004294faafc5e8c.jpg) Jörg Sellmeyer | Du solltest keine Lisbox, sondern eine Gridbox (auch Listview genannt) verwenden. Damit kannst Du den Text jeweils in einer Zeile ansehen und trotzdem Zellenweise darauf zugreifen.
Vielleicht hilft Dir dieses Beispiel schon mal weiter:
Declare Datei$,Zeile$
Declare lb&
Datei$ = $WinPath + "\\win.ini"
Cls
lb& = Create("GridBox",%hwnd,"Eintrag 1;0;198;Eintrag 2;2;198",0,10,10,400,400)
Set("ListDel","=")
Assign #1,Datei$
Reset #1
WhileNot EoF(#1)
Input #1,Zeile$
AddString(lb&,Zeile$)
Wend
Close #1
Set("ListDel","|")
While 1
WaitInput
If Clicked(lb&)
If GetCurSel(lb&) > -1
Zeile$ = GetString$(lb&,GetCurSel(lb&))
MessageBox(SubStr$(Zeile$,1,"|"),SubStr$(Zeile$,2,"|"),0)
EndIf
EndIf
Wend
|
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... ![](https://www.wuestensand.info/images/CoverFataMorganaklein.jpg) | 24.09.2011 ▲ |
|
|
|
|
![: 24.09.2011](.././../../i/a/noavatar.gif) | Danke Nico, aber cht weitergekommen bin ich nicht. Danke Jörg, dein Code hat geholfen, aber mit meiner Listbox ist es genau das was ich suche und brauche. Hier der aktuelle Code, falls es jemals jemand braucht. Als Datei steht zwar hier csv kann aber auch txt sein
Declare Programm$
Programm$ = GetDir$("@")'-- Arbeitspfad im Interpretermodus
Declare datei$
datei$ = Programm$+"\\beispiel.csv"
Declare Text$, Wahl$, tex$, lin1$, lin2$, lines$[96000],c&
Declare Nummer$,Name$
ClearList
Assign #1,datei$
Reset #1
input #1,lin1$
input #1,lin2$
WhileNot @Eof(#1)
Input #1,Name$
lines$[c&]=Name$
inc c&
AddString Name$
EndWhile
Close #1
tex$ = @ListBox$("csv",1)
cls
print (SubStr$(tex$,1,";"),0)
print (SubStr$(tex$,2,";"),0)
' und weiter Daten
waitinput
'-End-------------------------------------------------------------------
End
|
|
|
| |
|
|
|
![: 26.09.2011](.././../../i/a/noavatar.gif) | Thema bitte schließen.............
so Problem umgesetzt, es klappt alles so wie ich es brauche. Nochmal Danke für die Hilfe.
Frank |
|
|
| |
|
|
|
![Jörg Sellmeyer: 26.09.2011](.././../../i/a/8132362004294faafc5e8c.jpg) Jörg Sellmeyer | Wenn Du Dich anmeldest, kannst Du sowas (und mehr) selber erledigen. |
|
|
| Windows XP SP2 XProfan X4... und hier mal was ganz anderes als Profan ... ![](https://www.wuestensand.info/images/CoverFataMorganaklein.jpg) | 26.09.2011 ▲ |
|
|
|