Calificaciones altas, ¡cuénteme sobre la clasificación de los títulos de las noticias! ! !

No sé de dónde sacaste tu título, si fue de la base de datos, pero puedo darte dos ideas:

1: Este es un caso especial, suponiendo dos comportamientos

x y

1 7

2 8

x y=x 6 (relación). )

p>

Esta relación le permite indexar por ID, pero esto es muy limitado, porque no está dispuesto a tener una relación tan coincidente entre ID

2: Leer de la base de datos, base de datos de requisitos previos. El conjunto de resultados devuelto se ha ordenado en 1, 2, 3. . .

Entonces puedes hacer esto

1 mover el siguiente 6 veces hasta 7

mover el anterior 6 veces y luego mover el siguiente una vez para obtener 2 y luego mover el siguiente 6 veces hasta 8

Y así sucesivamente, porque si usa una tabla para procesarla, debe generarse horizontalmente. No puede dibujar la primera columna primero y luego agregar una columna después como hacemos en un dibujo.

; Este programa está compilado y se ejecuta correctamente

Segmento de código

Asume CS: Code, DS: Code

; --------------------------------

Función: Establecer posición del cursor

; Entrada: Cursor_Row=coordenada de fila; Cursor_Col: coordenada de columna)

SetCursor Proc Near

PUSH CX

PUSH BX

PUSH AX

XOR BX, BX

MOV AH, 2

INT 10H

POP AX

POP AX

p>

POP BX

POP CX

RET

SetCursor EndP

- ------- ------------------------------

List_Colums Proc Near; lista de títulos de noticias

mov dx, palabra ptr Cursor_DX

llamar a SetCursor; establecer la posición del cursor

lodsw; leer la dirección del título

mov; dx, ax

mov ah, 9

int 21h

inc Cursor_DX[1] ; aumenta el número de línea en 1

loop List_Colums

ret

List_Colums EndP

------------------------- ------ --------

Título_01 db ' 1. AAAAAAAAAAA$' ; Título de la noticia

Título_02 db ' 2. BBBBBBBBBBB$'

Título_03 db ' 3. CCCCCCCCCCCC$'

Título_04 db ' 4. DDDDDDDDDDD$'

Título_05 db ' 5. EEEEEEEEEEEE$'

Título_06 db ' 6. FFFFFFFFFFF$ '

Título_07 db ' 7. GGGGGGGGGGG$'

Título_08 db ' 8. HHHHHHHHHHH$'

Título_09 db ' 9. IIIIIIIIIIII $'

Título_10 db '10. JJJJJJJJJJJ$'

Título_11 db '11. KKKKKKKKKKK$'

Título_12 db '12. >

Título_13 db '13. MMMMMMMMMMM$'

Título_14 db '14. NNNNNNNNNNN$'

Título_15 db '15. db '16.

p>Título_18 db '18. RRRRRRRRRRR$'

Título_19 db '19.

Título_20 db '20. 21. UUUUUUUUUU$'

Título_22 db '22. VVVVVVVVVVV$'

Título_23 db '23.

Título_25 db '25. YYYYYYYYYYY$'

Título_26 db '26.

Índice dw Título_01, Título_02, Título_03, Título_04, Título_05, Título_06 ,Título_07,Título_08,Título_09,Título_10

dw Título_11,Título_12,Título_13,Título_14,Título_15,Título_16,Título_17,Título_18,Título_19,Título_20

dw Título_21,Título_22,Título_23,Título_24 , Título_25, Título_26; Lista de clasificación original de títulos de noticias

Elementos equ ($-Index)/Tipo de índice

Líneas equ 10;

Columnas equ 3; número de filas y columnas

Cursor_DX db 0, 0; inicializa la posición del cursor

Inicio: presionar cs

pop ds; hacer segmento de datos Igual que el fragmento de código

; Muestra títulos de noticias, con un máximo de 10 títulos por columna y un máximo de 3 columnas. Suponga un máximo de 24 caracteres por título y 2 caracteres entre columnas.

cld

lea si, Índice; dirección actual de la tabla de clasificación de títulos de noticias

mov ax, Número de títulos de noticias

mov cx , Líneas; número de filas en cada columna

div cl

mov bx, ax; guarda el número de filas y columnas

mov cl, bl

xor ch, ch

jcxz Last_Colum

Si el número de filas = 0, solo se mostrará una fracción de una columna (menos de 10 títulos). >cmp cx, Columnas ; Número de columnas gt;

jbe List_Lines no mayor que, muestra el número especificado de columnas

mov cx, Colums si el número de columnas excede 3 columnas, muestra hasta 3 columnas

List_Lines: push cx

mov cx, Líneas; Número de filas en cada columna

llamar a List_Colums; mostrar una columna

agregar Cursor_DX, 26; agregue 26 al número de columna

mov Cursor_DX[1], 0; establezca el número de línea en 0

pop cx

loop List_Lines

Last_Colum: mov cl, bh; toma la última columna de líneas Número

xor ch, ch

jcxz Exit_Proc

cmp bl, número de columna; gt;3?

ja Exit_Proc; Mayor que, ya mostrado, finaliza el programa

llamar a List_Colums; Mostrar una columna

mov dx, 0a00h; >

llamar a SetCursor

Exit_Proc: mov ah, 4ch; finalizar programa

int 21h

Código FINALIZA

END Inicio; compilar aquí Fin