maison
Top.Mail.Ru Yandeks.Metrika
Forum: "Main";
Archive actuelle: 2002.01.08;
Télécharger: [xml.tar.bz2];

vers le bas

Question au paskalschikami ??? Trouver des branches similaires


Art   (2001-12-18 17:19) [0]

Le compilateur génère une erreur Variable Indefinier attendue et indique l'emplacement dans le programme où deux constantes sont multipliées.



Владислав   (2001-12-18 17:20) [1]

Variable Indefinier Expected signifie: identifiant de variable attendu.

Tirez des conclusions.

Donnez le code.



Art   (2001-12-18 17:23) [2]

System.Move (grecFixedDiskBoot, gsTempInput [1], aMaxTpStrLen);
gsTempInput [0]: = System.Char (aMaxTpStrLen);
IF (System.Pos (asCopyrightNotice, gsTempInput) <> 0)
ALORS COMMENCER
System.WriteLn (asProgramPrompt + asProgram +
"chargeur trouvé sur le disque fixe 0.");
System.Write (asProgramPrompt +
"Copier les chaînes de description de la copie installée (O / N):");
System.ReadLn (gsTempInput);

IF (System.UpCase (_fnchGetFirstChar (gsTempInput)) <> achNo)
ALORS COMMENCER
System.WriteLn (asProgramPrompt + "Copier les chaînes de description.");
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode)):
(System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)],
(“Il montre les constantes ici) aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition);
FIN;
{si-alors}
FIN
AUTRE
System.WriteLn (asProgramPrompt + asProgram + "chargeur non présent.");
{si-alors}



Владислав   (2001-12-18 17:26) [3]

Déclarer une variable. Donnez-lui un sens. Passez dans la procédure.
Très probablement, la procédure attend un paramètre par référence et vous passez par valeur.



MBo   (2001-12-18 18:40) [4]

Avez-vous besoin d'un colon là-bas?



Иван Шихалев   (2001-12-18 18:52) [5]

Qu'est-ce que c'est que le colon? Nous prenons un manuel pour les années élémentaires et commençons à découvrir en quoi les valeurs de paramètre et les variables de paramètre diffèrent. Il est également utile de consulter l'aide pour connaître les paramètres de la procédure. Se déplacer et combien d'entre eux.



Anatoly Podgoretsky   (2001-12-18 20:06) [6]

Il me semble que le problème est ici
"(" Cela montre les constantes ici) "est une variable? et puis où est la virgule?
Et si la syntaxe est par ailleurs correcte.
Indiquez le code d'appel exact et la déclaration de variable utilisée dans la procédure de déplacement.



Art   (2001-12-18 20:22) [7]

Les gars, j'ai déjà été torturé, maintenant je vais donner le code entier!



Art   (2001-12-18 20:29) [8]

{* ========================= CONSTANTS PART =================== =========}}

CONST

{définitions de programme}
asPurpose = "OS-MultBoot";
asVersion = "1.30";
asAuthor = "Dima Stefankov";
asCopyright = "Droits d'auteur (c) 1987, 1993";
asProgram = "OS-Boot";
asProgramPrompt = asProgram + ":";

{codes de sortie}
errTerminateOK = 0;
errBootStrapDebug = 1;
errBadReadFixedDisk = 2;
errBadWriteFixedDisk = 3;
errUserInstallAbort = 4;
errUserWriteAbort = 5;
errMismatchLoaderCode = 6;

{divers}
aMaxTpStrLen = 255;
asBlank = "";
achHexPrefix = "$";
asFreeSlot = "<*** emplacement libre ***>";
asNonFreeSlot = "<*** emplacement du disque ***>";
aSectorSize = 512;
aSecSizeInWords = aSectorSize DIV 2;
aQuit = "Q";
achYes = "Y";
achNo = "N";
aDefExt = "BIN";
aDosExtMark = ".";

{Codes ASCII}
achNULL = 00;
achLF = 10;
achCR = 13;
achOne = "1";
achFour = "4";

{***** ATTENTION !!! Valeurs codées en dur ci-dessous. *****}
{***** S'il vous plaît modifier avec soin! *****}
{$ IFDEF DebugVersion}
adwBootSeg = $ 8000; {segment à 512K}
{$ ELSE}
adwBootSeg = $ 0000; {segment à 0K}
{$ ENDIF}
adwBootOfs = $ 7C00;
adwRelBootOfs = adwBootOfs + aSectorSize;
adwPartitionTable = $ 1BE;
aPartitonEntrySize = $ 10;
aMaxAvailLogicalPartition = 4;
adwBootMarkOfs = adwPartitionTable +
(aPartitonEntrySize *
aMaxAvailLogicalPartition);
adwBootSecID = $ AA55;

aOS_Desc_Str_Len = $ 16; {ces valeurs trouvées}
aOS_Desc_Ofs = $ 04; {après assemblage de}
aOS_Desc_Start = $ 40-1; {Procédure IPL. }
aOS_Desc_Str_Len_Ext = aOS_Desc_Str_Len + 2;

aDebugOff = 0;
aDebugOn = 1;

aFarJumpOpCode = $ EA; {opcode iAPX86}

aRomKbdDriver = $ 16; {Fonctions BIOS IBM PC}
aRomDiskDriver = $ 13;
aRomVideoDriver = $ 10;

{utiliser pour vérifier la version installée}
asCopyrightNotice = "OS-MultBoot (C) 1992 D. Stefankov";


{* ====================== PARTIE DE CONSTANTE TYPEE ====================== === *}

TYPE

{* strings *}
STR2 = STRING [2];
STR4 = STRING [4];
STR8 = STRING [8];

{* Informations sur le disque logique *}
recLogicalPartition = RECORD
dbBootDriveMark: System.Byte; {00}
dbStartingHead: System.Byte; {01}
dwStartingCylSec: System.Word; {02}
dbOperatingSystemID: System.Byte; {04}
dbEndingHead: System.Byte; {05}
dwEndingCylSec: System.Word; {06}
ddPrecedingSecs: System.Longint; {08}
ddSecsPerPartition: System.Longint; {0C}
FIN;
{* recLogicalPartition *}

{* Secteur de démarrage principal *}
recMasterBoot = RECORD
dbReservedCode: ARRAY [0..adwPartitionTable-1] OF
System.Byte; {000}
recDiskPartitionsTable: ARRAY [0..aMaxAvailLogicalPartition-1] OF
recLogicalPartition; {1BE}
dwValidBootRecID: System.Word; {1FE}
FIN;
{* recMasterBoot *}


{* =========================== VARIABLES PART ================== =========}}

VAR

grecFixedDiskBoot: recMasterBoot;
gfOutStream: FICHIER DE recMasterBoot;
gsTempInput: STRING;
gdwOurBootRecLen: System.Word;
gdwMemOfs: System.Word;
gbStatusOk: System.Boolean;
gdbIndex: System.Byte;
gchIn: System.Char;





Anatoly Podgoretsky   (2001-12-18 20:30) [9]

C’est mieux de commencer par cela, mais vous n’avez pas besoin de tout le code, seulement pour le déplacement et les déclarations de variables nécessaires.



Art   (2001-12-18 20:33) [10]

System.Move (grecFixedDiskBoot, gsTempInput [1], aMaxTpStrLen);
gsTempInput [0]: = System.Char (aMaxTpStrLen); - il saute cette ligne signifie tous les paramètres!



Art   (2001-12-18 20:39) [11]

Passer du module SYSUTILS



Anatoly Podgoretsky   (2001-12-18 20:54) [12]

Alors, à qui des deux mouvements le compilateur jure-t-il?
Eh bien, ne tirez pas les informations de votre part, goutte à goutte, vous serez bientôt fatigué.



Иван Шихалев   (2001-12-18 21:06) [13]

> il saute cette ligne signifie tous les paramètres!

System.Move (grecFixedDiskBoot, gsTempInput [1], aMaxTpStrLen);

Il y a trois paramètres

System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode):: System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)], aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition);

Il y a deux paramètres

> Passer du module SYSUTILS

Qu'est-ce que ça veut dire?



Art   (2001-12-18 21:07) [14]

Passer du module SYSUTILS



Art   (2001-12-18 21:10) [15]

D'accord, marteau sur le module!
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode):: System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)],

aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition); - jure à cette pièce!



Art   (2001-12-18 21:12) [16]

Les gens! Ce sera plus facile pour tout le monde si quelqu'un sait où trouver le code source du chargeur de démarrage !!



Anatoly Podgoretsky   (2001-12-19 00:05) [17]

Il fallait qu'il n'y ait pas deux, mais trois paramètres !!!



Владислав   (2001-12-19 07:44) [18]

> Art © (18.12.01 21: 12)

Ce sera plus facile si vous ne "remuez pas l'eau" :-)

Voici la déclaration de procédure:
procedure Move (const Source; var Dest; Count: Integer);

Et voici comment vous l'utilisez:
System.Move (System.Mem [System.Seg (grecFixedDiskBoot.dbReservedCode)): (System.Ofs (grecFixedDiskBoot.dbReservedCode) + aOS_Desc_Start)], aOS_Desc_Str_Len_Ext * aMaxAvailLogicalPartition)

Trouvez les différences ...

Ce sera plus facile pour tout le monde si quelqu'un sait où trouver la source du chargeur de démarrage!

"S'il te plaît, donne-moi de l’eau à boire, sinon je veux manger tellement qu’il n’ya nulle part où dormir."

Bonne chance.



Арт   (2001-12-19 13:47) [19]

Ok, désolé, merci à vous tous!



Pages: 1 branche entière

Forum: "Main";
Archive actuelle: 2002.01.08;
Télécharger: [xml.tar.bz2];

à l'étage









Mémoire: 0.63 MB
Heure: 0.04 c
4-22507
Slaviq
2001-11-06 17:55
2002.01.08
Icônes système


1-22138
Serg5
2001-12-20 09:22
2002.01.08
Les gens, dites-moi, et comment effacer Image1, Clear n'a pas trouvé la fonction ...


1-22167
Art
2001-12-15 20:56
2002.01.08
Tel est le problème !!!


7-22430
AlexK
2001-09-21 12:28
2002.01.08
serrure à clé


3-21933
pov
2001-11-26 12:19
2002.01.08
Dites-moi le moyen le plus simple d'enregistrer un BDE





afrikaans albanais Arabic arménien azerbaïdjanais basque Biélorusse Bulgare catalan Chinois simplifié) Chinois (traditionnel) croate Tchèque Danois Néerlandais Anglais estonien Filipino Finlandais Français
galicien géorgien Allemand Grecque Créole haïtien hébreu Hindi Hongrois Islandais Indonesian irlandais Italien japonais Coréen letton lituanien macédonien Malay maltais Norvégien
persan Polonais Portugais roumain Russe serbe Slovaque Slovène Espagnol Swahili Suédois Thai turc ukrainien Urdu vietnamien gallois yiddish bengali bosniaque
Cebuano espéranto gujarati Hause hmong Igbo Javanais Kannada Khmer lao latin maori Marathi mongol népalais punjabi somali tamil telugu yoruba
zoulou
Английский Français Allemand Italien Португальский Русский Espagnol