CString - Multiple String suche?
- 
					
					
					
					
 Hi, hab folgendes Problem: Ich habe einen String der sieht z.B.: so aus 
 Drive C: Fixed Disk
 Volume Name: Windows 2000 (NTFS)
 Volume Serial: 2293555577
 Total Space: 10,742,181,888 bytes
 Free Space: 7,186,571,264 bytes
 Drive E: Network Disk
 Volume Name: (NTFS)
 Drive F: Fixed Disk
 Volume Name: something (NTFS)
 Volume Serial: 2492504988
 Total Space: 4,622,573,568 bytes
 Free Space: 2,043,850,752 bytes
 Drive G: Network Disk
 Volume Name: (NTFS)
 Drive P: Network Disk
 Volume Name: (NTFS)
 Drive X: Network Disk
 Volume Name: (NTFS)So daraus will ich jeweils nur den Block haben, der auch ne Fixe Disk enthält, also keine Network Disk(s)! Die Laufwerksbuchstaben sind variabel, und ich glaub da liegt auch mein Problem! Also ich habe das schon erfolgreich aus einem noch viel längeren String gefilter, aber wie kann ich mir jetzt immer nur so ein Block raus filtern, und das mehrfach??  
 **
 Drive C: Fixed Disk
 Volume Name: Windows 2000 (NTFS)
 Volume Serial: 2293555577
 Total Space: 10,742,181,888 bytes
 Free Space: 7,186,571,264 bytes
 **Als nächstes muss dann Drive F kommen, dazwischen sind es ja Network Disk(s) 
 Wäre echt Klasse wenn mir jemand helfen kann...ich zerbrech mich daran schon den ganzen Tag den Kopf 
 
- 
					
					
					
					
 Wenn du das meinst: while(f.ReadString(str)) { str.TrimLeft();str.TrimRight(); if(str.Left(5)=="Drive" && str.Right(10)=="Fixed Disk") { // Block auslesen } }/E: Eig kann man sich das <str.Left(5)=="Drive"> auch schenken [ Dieser Beitrag wurde am 11.07.2002 um 18:41 Uhr von Nemesyzz editiert. ] 
 
- 
					
					
					
					
 Ok, das brechen hat ein Ende  int sub, beg, end; CString str1, str2; for(beg = str1.Find("Drive", 0); ;beg = end) //beginn mit erstem drive { sub = str1.Find("Fixed", beg); if(sub < 0) // fixed nicht gefunden break; end = str1.Find("Drive", beg +1); //ende mit nächstem drive if(end < 0) //wenn kein nächstes vorhanden end = str1.GetLength(); //ist gesammtlänge das ende if(beg < sub&&sub < end) //ist fixed im gefundenem bereich { str2 = str1.Mid(beg, end - beg); } }
 
- 
					
					
					
					
 @ByteSlider : SAU COOL funzt soweit, 
 nur das er mir meine C Platte immer 2 mal aufführt, das bekomme ich aber wohl noch hin.... DANKE AUF JEDENFALL..@Nemesyzz : danke auch dir, werd probeweise mal deine version auch testen  
 
- 
					
					
					
					
 Achja, find ich wichtig für später... ---->>> FAQ -->> done.