ERLEDIGT
JA
JA
ANTWORTEN
11
11
ZUGRIFFE
1072
1072
EMPFEHLEN
-
18.11.04 11:27 #1
- Registriert seit
- Nov 2004
- Beiträge
- 14
Hi, ich wollt euch nochma lfragen ob mir jemand helfen könnte...
Habe folgendes Problem. Als Dateiinhalt habe ich z.B. folgende Sachen
User=xxx
Pwd=xxx
ID=xxx
...
Ich bräuchte nun ein bisschen Hilfe, um aus der Datei jeweil den Zeileninhalt nach dem "=" auszulesen. was vor dem "=" steht, bleibt immer gleich. Ich habe nun schon angefangen, "User=" usw als Stringvariable so im Programm zu lassen. Dann suche ich den jeweiligen String in der Datei und lese die Zeichen danach aus. klappt eigentlich ganz gut, bis auf folgende Problemchen...
Das was hinter dem "=" steht kann variabel in der Länge sein, können Buchstaben, Zahlen und Sonderzeichen sein.
Habe gehört, es besteht irgendwie die Möglichkeit mit get und set properties, leider weiss ich nicht direkt wie ich das anwenden muss.
Danke im vorraus Danilo
PS: Achtung Anfängergefahr
-
Hallo,
das was du suchst, ist sowas wie eine Ini-Datei auslesen?
Hier ist so etwas erklärt:
http://www.3plus4software.de/downloads/20020610.htmlGruss Bernd
Zitat von mAu
-
18.11.04 11:39 #3
- Registriert seit
- Nov 2004
- Beiträge
- 37
wenn du mehrere Einträge davon untereinander in der Datei hast, würde ich das so machen:
private static HashMap getProperties()
{
int index = 0;
String zeile = "";
String user = "";
String pwd = "";
String id = "";
try
{
RandomAccessFile raf = new RandomAccessFile(fileName,"r");
long cursor = 0;
long length = raf.length();
while (cursor < length)
{
zeile = raf.readLine();
if (! zeile.startsWith(" "))
{
index = zeile.indexOf('=');
if (zeile.startsWith("user"))
{
host = zeile.substring(index+1);
}
else if (zeile.startsWith("pwd="))
pwd = zeile.substring(index+1);
else if (zeile.startsWith("id="))
id = zeile.substring(index+1);
try
{
hm.put(user+"@"+pwd+"@"+id);
}
catch ( Exception e )
{
System.err.println("Exception: " +e.getMessage());
}
}
cursor = raf.getFilePointer();
}
catch (IOException e) {
System.out.println("error");
}
}
caruso
-
18.11.04 11:44 #4
- Registriert seit
- Oct 2004
- Beiträge
- 144
kleines beispiel:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
final String iniFile = "password.properties"; private void iniFileReader() { try { StringTokenizer st; FileInputStream fis = new FileInputStream(iniFile); Properties properties = new Properties(); properties.load(fis); username = properties.getProperty("username"); // das in den klammern ist eben username im Inifile d.h. er liest alles danach ein password = properties.getProperty("Password"); dbPort = Integer.parseInt(properties.getProperty("dbPort")); port = (short) Integer.parseInt(properties.getProperty("port")); COMPort = properties.getProperty("SerialPort"); } catch (Exception e1) { JOptionPane.showMessageDialog(this, "Inifile konnte nicht initialisert werden!", "ERROR", JOptionPane.ERROR_MESSAGE); e1.printStackTrace(); } }Geändert von Shizzl_chrizzl (18.11.04 um 11:50 Uhr)
-
18.11.04 11:54 #5
- Registriert seit
- Nov 2004
- Beiträge
- 37
das geht aber nicht, wenn mehrere Einträge vorhanden sind!
caruso
-
18.11.04 11:59 #6
- Registriert seit
- Oct 2004
- Beiträge
- 144
ja aber die sind doch irgendwie getrennt durch n komma so das du unterscheiden kannst wann der eine eintrag aufhört und der nächste anfängt.
dann nimmst einfach deinen "USER"
und zerlegst es....
StringTokenizer ts = new StringTokenizer(USER, ",");
int tsTokens = ts.countTokens();
for(int i = 0; i < nTokense; i++){
vUser.addElement(ts.nextToken()); // vUser is n vektor nur als beispiel
}
-
18.11.04 12:04 #7
- Registriert seit
- Nov 2004
- Beiträge
- 14
Danke erstmal, ich werde mir das mal anschauen...ob ich das zusammen bekomme alles
-
23.11.04 11:41 #8
- Registriert seit
- Nov 2004
- Beiträge
- 14
Also das mit dem Auslesen der Daten mit getproperties hat nun geklappt oder auch schon weilchen länger *fg*
Habe nun ein neues kleineres Problem.
Ich will anhand dieser beiden Marken einen Substring aus den Zeichen einer Datei haben. Ich komme soweit eigneltich damit klar. Ich kann von einer Marke bis zur nächsten marke den Substring machen oder von einer Marke bis zum Ende. wo ich jetzt ein kleines Problem habe wäre, das er den Substring machen soll, aber darauf achten muss, ob die zweite Marke kommt bzw es die zweite Marke gibt.
Er soll also das Problem auffangen, wenn es keine zweite Marke in diesem String gibt und dann nur bis zum Ende lesen.
Kann man den vielleicht irgendwie fragen ob diese Zeichenkette (zweite Marke) in dem String vorhanden ist oder nicht. Weil wenn ja dann kann ich die beiden möglichkeiten von Substring mit einer if-Anweisung machen.
Bin für jede Hilfe dankbar.
-
Wie wäre es mit sowas:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
import java.util.StringTokenizer; /** * @author Snape */ public class TokenizerTest { public static void main( String[] args ) { String strTestString = "abcde|fghij|klmnopqrst"; StringTokenizer tokenizer = new StringTokenizer(strTestString); String firstString = tokenizer.nextToken("|"); System.out.println(firstString); String secondString = tokenizer.nextToken("|"); System.out.println(secondString); String thirdString = tokenizer.nextToken("|"); System.out.println(thirdString); } }
Output:
abcde
fghij
klmnopqrst
Oder suchst Du etwas anderes?
-
23.11.04 14:39 #10
- Registriert seit
- Nov 2004
- Beiträge
- 14
Naja so in etwa kann man es vielleicht nutzen, weiss nicht genau...
Nehmen wir mal als Beispielstext folgenden.
"Halli Hallo mich beisst ein Floh, ich weiss nicht wo!
heute haben wir den 19.01.1982 und es ist schlechtes Wetter.es
regnet und ist zu warm für Schnee. Ich hoffe das wird sich bald
ändern und wir haben dann am 19.01.1992 besseres Wetter als
heute."
Die beiden Daten nehmen wir ins Auge. Das Programm soll jetzt alle Zeichen zwischen den beiden Daten in einen substring tun, wenn kein zweites Datum vorhanden ist soll der Substring vom ersten Datum bis zum Textende gehen. Ich bekomme es hin, mit substring(String) <<--- das er bis zum Ende liest oder substring( String, String) <<--- das er vom ersten Datum bis zum zweiten Datum liest...nur weiss ich nicht wie ich das verknüpfen soll...
Also wenn zweites Datum im Text vorhanden, dann substring bis dort, wenn nicht vorhanden dann substring bis Textende...Ich weiss nicht genau wie ich da eventuell eine if-Anweisung formulieren könnte...
-
23.11.04 14:52 #11
- Registriert seit
- Oct 2004
- Beiträge
- 144
wie sieht deine methode bzw. if-schleife bisher aus
poste doch mal den code
-
23.11.04 15:01 #12
- Registriert seit
- Nov 2004
- Beiträge
- 14
Ich habe bisher nur...
...entweder Substring von Marke bis Ende
...oder substring von Marke bis Marke
Ich bräuchte jetzt also etwas wie,
Code :1 2
int ind_markevon=result.indexOf(Markevon); //Wo beginnt Markevon int ind_markebis=result.indexOf(Markebis); //Wo beginnt Markebis
Jetzt sollte er testen ob ind_markebis vorhanden ist oder nicht.
Wenn vorhanden dann
Code :1
String teilstück = result.substring(ind_markevon , ind_markebis);
Wenn nicht vorhanden dann
Code :1
String teilstück = result.substring(ind_markevon);
Und das würde ich irgendwie in eine if-Anweisung oder so packen wollen. Nur leider weiss ich nicht wie ich den fragen soll ob es ind_markebis gibt oder ob es das nicht gibt...
-MfG- Danilo
Ähnliche Themen
-
[c++] eine zeile aus einer datei lesen
Von Mavericklp im Forum C/C++Antworten: 3Letzter Beitrag: 19.10.06, 14:44 -
Maus an bestimmter Stelle
Von illetuffi im Forum Flash PlattformAntworten: 2Letzter Beitrag: 04.05.05, 12:57 -
aus einer log datei von zeile x bis zum ende lesen
Von Besti im Forum CGI, Perl, Python, Ruby, Power ShellAntworten: 1Letzter Beitrag: 11.04.05, 13:41 -
Aus einer bestimmten Zeile in txt Lesen
Von BiggJoee im Forum Visual Basic 6.0Antworten: 11Letzter Beitrag: 09.09.04, 09:56 -
Speicherung an bestimmter Stelle in einer HTML-Datei in C++
Von NeoTrace im Forum C/C++Antworten: 6Letzter Beitrag: 14.07.04, 12:43





Zitieren
Login





