Help and Support

Artikel-ID: 42326 - Geändert am: Dienstag, 21. November 2006 - Version: 1.2

Falsches Beispiel in QB-Ratgeber für AUFRUF-INTERRUPT

Auf dieser Seite

Alles erweitern | Alles schließen

Zusammenfassung

Das Codebeispiel für CALL INTERRUPT in der QuickBasic-Version dass 4.50 QB Advisor Hyper-Text-Online-Hilfesystem das falsche Beispiel ist, da es tatsächlich ein Codebeispiel und CALL INTERRUPT das Beispiel für CALL INT86OLD ist, fehlt. Zwei Fehler benötigen darüber hinaus, in diesem Beispiel CALL INT86OLD zu korrigieren. Arbeit beispielsweise CALL INT86OLD und CALL INTERRUPT (das korrigiert wird) werden unten angezeigt.

Weitere Informationen

Die folgenden zwei Fehler müssen in dem Beispiel CALL INT86OLD korrigiert werden, das auf dem QB-Ratgeber "Help : Call Interrupt Statement Programming Example" QuickBasic 4.50 stattfindet:

  1. Die folgende falsche Zeile
          $INCLUDE: 'QB.BI'    [Gives "Expected: Statement" error in QB.EXE.]
    						
    Um wie folgt zu lauten, sollte korrigiert werden:
          REM $INCLUDE: 'QB.BI'
    						
  2. Ändern Sie die folgende falsche Zeile:
          INARY%(DX) = SADD("NAME.TXT" + CHR$(0)) ["Expected: Variable" error.]
    						
    In den beiden folgenden Zeilen sollte geändert werden:
          a$ = "NAME.TXT" + CHR$(0)
          INARY%(DX) = SADD(a$)
    						
Das korrigierte CALL INT86OLD Beispiel wird unten in Beispiel 1 angezeigt.

Die Anweisung von CALL INTERRUPT wird unten in Beispiel 2 angezeigt. Ein Codebeispiel für CALL INTERRUPT wird außerdem auf "Microsoft QuickBasic 4.5 : Basic Language Reference" Seite 74 bis 76, das separat verkauft wird (unter der Auftragkarte in dem 4.50 Paket siehe) gefunden.

Wird on korrekt in dem Codebeispiel CALL INTERRUPT in dem Online-Hilfesystem QBX.EXE Microsoft Advisor (für Microsoft Basic PDS-Versionen, 7.00 und 7.10 für MS-DOS und MS OS/2) angezeigt der " Hilfe: Sie unterbrechen Interruptx-Routinen Programmierbeispiel " Bildschirm (und das Beispiel ordnungsgemäß funktioniert).

Beachten Sie, dass die INT86OLD- und die INT86XOLD-Routinen in gedruckter oder online beliebiger Dokumentation in Basic PDS 7.00 und 7.10 nicht dokumentiert, wie in einem separaten Artikel, der der gefunden wird, indem mit den folgenden Worten abfragt, beschrieben, dass Sie sind, sind:
INT86OLD and help and docerr

Beispiel 1: rufen Sie INT86OLD-Beispiel auf (das korrigiert wird)

' Note:  To use CALL INTERRUPT, you must load the Quick library QB.LIB
'        with QuickBasic. The program also uses the QB.BI header file.

' Include header file for INT86OLD, etc.
REM $INCLUDE: 'QB.BI'  ' Added REM to correct "Expected: Statement" error

DIM INARY%(7), OUTARY%(7)         'Define input and output
              'arrays for INT86.
'
' Define register-array indices to
' make program easier to understand.
CONST AX = 0, BX = 1, CX = 2, DX = 3, bp = 4, si = 5, di = 6, FL = 7
'
INARY%(AX) = &H3C00               'DOS function to create a file.
INARY%(CX) = 0                    'DOS attribute for created file.
a$ = "NAME.TXT" + CHR$(0)   ' Added this line and modified next line to
INARY%(DX) = SADD(a$)      ' correct "Expected: Variable" error.
              'Pointer to file-name string
              'with zero byte termination.

CALL INT86OLD(&H21, INARY%(), OUTARY%())
              'Perform the creation.
'
INARY%(BX) = OUTARY%(AX)          'Move created file handle for write.
INARY%(AX) = &H4000               'DOS function to write to file.
TEXT$ = "hello, world" + CHR$(13) + CHR$(10)
              'Define text to write to file.
INARY%(CX) = LEN(TEXT$)           'Get length of text string.
INARY%(DX) = SADD(TEXT$)          'Get address of text string.
CALL INT86OLD(&H21, INARY%(), OUTARY%())
              'Perform the write.
'
INARY%(AX) = &H3E00               'DOS function to close a file.
CALL INT86OLD(&H21, INARY%(), OUTARY%())
              'Perform the close.
				

Beispiel 2: AUFRUF INTERRUPT Example (das in QB Advisor 4.50 Help nicht gefunden wird)

'This example uses the Interrupt routine to determine the current
'drive and the amount of free space remaining on the drive.

'Note: To use the Interrupt routine, you must load the Quick library
'QB.QLB using the /L switch when you begin QB. The following include
'file must also be present.

'$INCLUDE: 'QB.BI'

'Define registers.
DIM regs AS RegType

'Get current drive info; set up input and do system call.
regs.ax = &H1900
CALL INTERRUPT(&H21, regs, regs)

'Convert drive info to readable form.
Drive$ = CHR$((regs.ax AND &HFF) + 65) + ":"

'Get disk free space; set up input values and do system call.
regs.ax = &H3600
regs.dx = ASC(UCASE$(Drive$)) - 64
CALL INTERRUPT(&H21, regs, regs)

'Decipher the results.
SectorsInCluster = regs.ax
BytesInSector = regs.cx
IF regs.dx >= 0 THEN
   ClustersInDrive = regs.dx
ELSE
   ClustersInDrive = regs.dx + 65536
END IF
IF regs.bx >= 0 THEN
   ClustersAvailable = regs.bx
ELSE
   ClustersAvailable = regx.bx + 65536
END IF
Freespace = ClustersAvailable * SectorsInCluster * BytesInSector

'Report results.
CLS
PRINT "Drive "; Drive$; " has a total of";
PRINT USING "###,###,###"; Freespace;
PRINT " bytes remaining free."
				
Keywords: 
KB42326 KbMtde kbmt
Maschinell übersetzter ArtikelMaschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 42326  (http://support.microsoft.com/kb/42326/en-us/ )
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Retired KB ArticleDisclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

SPRACHE AUSWÄHLEN