Guten morgen allerseits,
ich habe mal ein paar fragen bezügl. string arrays:
wie deklariert man ein string array?
wie fragt man es ab?
In folgendem Beispiel möchte ich gerne alle laufwerke auf is_cdrom abfragen.
szDriveLetters ist hier = "abcd...z"
This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Fragen zu string arrays
Started by
Thilo T.
, Jan 25 2005 09:05
2 replies to this topic
Posted 25 January 2005 - 09:05
CODE |
function GetCDRomDrive(szDriveLetters) number nvResult; string svResult; int iVal; begin iVal=0; while (szDriveLetters[iVal]!=0 && iVal<26) svResult=szDriveLetters[iVal]+":"; GetSystemInfo(DRIVE,nvResult, svResult ); if nvResult=IS_CDROM then MessageBox("CD-ROM gefunden: "+svResult,MB_OK); endif; iVal++; endwhile; end; |
Fehlermeldung: Fehler C8126: 'szDriveLetters' : String-Variable erforderlich
Zeile: svResult=szDriveLetters[iVal]+":";
Wie kann ich z.B. szDriveLetters[0] an eine string variable übergeben um an das "a" zu kommen?
Danke für eure Tips,
Thilo
Edited by Thilo T., 25 January 2005 - 09:08.
Posted 25 January 2005 - 10:35
Versuchs mal mit GetValidDrivesList ... Beispiel:
CODE |
DriveList = ListCreate( STRINGLIST ); if( DriveList != LIST_NULL ) then GetValidDrivesList( DriveList, CDROM_DRIVE, 0 ); nDrives = ListCount( DriveList ); nResult = ListGetFirstString ( DriveList , svString ); while( nResult = 0 ) MessageBox("CD-ROM gefunden: "+svString,MB_OK); nResult = ListGetNextString ( DriveList , svString ); endwhile; endif; |
Gruß / regards
Thomas
Thomas
Posted 25 January 2005 - 11:22
Hi Perotin,
danke für Deine Version.
Ich habe aber auch gerade die Lösung für meinen Weg gefunden:
danke für Deine Version.
Ich habe aber auch gerade die Lösung für meinen Weg gefunden:
CODE |
while (szDriveLetters[iVal]!=0 && iVal<26) cvResult=szDriveLetters[iVal]&255; Sprintf(svResult,"%c:",cvResult); GetSystemInfo(DRIVE,nvResult, svResult ); if nvResult=IS_CDROM then MessageBox("CD-ROM gefunden: "+svResult,MB_OK); return nvResult; endif; iVal++; endwhile; |
Tja, so früh am Morgen bin ich noch nicht so fit Ich hatte übersehen, daß ich ASCII-Werte zurückbekomme.
So geht´s auf jeden Fall, wobei ich zugeben muß, daß Deine Lösung eleganter ist. Aber wenn man sich einmal an einer Idee festgebissen hat übersieht man ja leicht die anderen Möglichkeiten. Viele Wege führen nach Rom oder so...
so long,
Thilo