Bom como prometido estarei liberando a Source completa do conversor para o pessoal poder estudar, como disse é legal pra pegar umas manhas do while, de trabalhar com arquivos de texto etc, etc....
Não vou me referir muito ao que o programa faz, voces podem ver isso neste [Only registered and activated users can see links. Click Here To Register...]..
vo postar uma das Procedures que estao nesta source abaixo
Código PHP:
PROCEDURE TFcashshop.F_GERA_AXES; LABEL PULA,PULA2,FIM_AXES; BEGIN
WHILE WX < MEMOITEM.Lines.Count +1 DO BEGIN
IF TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,100)) = '1' THEN BEGIN //LENDO OS AXES WX:=WX+1; PULA2: IF ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '0') AND ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '1') AND ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '2') AND ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '3') AND ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '4') AND ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '5') AND ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '6') AND ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '7') AND ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '8') AND ((TRIM(COPY(MEMOITEM.Lines.Strings[WX],1,1))) <> '9') THEN BEGIN WX:=WX+1; GOTO PULA2; END; //Index Slot Skill X Y Serial Opt Drop Nombre
WHILE WX_COLUNA < WTAMANHO_LINHA DO BEGIN PULA: WX_COLUNA:=WX_COLUNA+1; //PEGANDO INDEX IF (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) AND (WINDEX = '') THEN BEGIN
WHILE (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) DO BEGIN
IF (WITEM < WINICIO) OR (WITEM > WFIM) THEN BEGIN WX_COLUNA:=WTAMANHO_LINHA; WX:=WX+1; WX_COLUNA:=0; WINDEX:=''; GOTO PULA; END; //PEGANDO SLOT IF (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) AND (WSLOT = '') THEN BEGIN WHILE (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) DO BEGIN WSLOT:=WSLOT+COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1); WX_COLUNA:=WX_COLUNA+1; END; END; //PEGANDO SLkill IF (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) AND (WSKILL = '') THEN BEGIN WHILE (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) DO BEGIN WSKILL:=WSKILL+COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1); WX_COLUNA:=WX_COLUNA+1; END; END; //PEGANDO POSICAO X IF (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) AND (WTX = '') THEN BEGIN WHILE (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) DO BEGIN WTX:=WTX+COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1); WX_COLUNA:=WX_COLUNA+1; END; END; //PEGANDO POSICAO Y IF (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) AND (WTY = '') THEN BEGIN WHILE (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) DO BEGIN WTY:=WTY+COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1); WX_COLUNA:=WX_COLUNA+1; END; END; //PEGANDO NUMERO DE SERIE IF (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) AND (WSERIAL = '') THEN BEGIN WHILE (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) DO BEGIN WSERIAL:=WSERIAL+COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1); WX_COLUNA:=WX_COLUNA+1; END; END; //PEGANDO OPTION IF (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) AND (WOPT = '') THEN BEGIN WHILE (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) DO BEGIN WOPT:=WOPT+COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1); WX_COLUNA:=WX_COLUNA+1; END; END; //PEGANDO DROP IF (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) AND (WDROP = '') THEN BEGIN WHILE (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) DO BEGIN WDROP:=WDROP+COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1); WX_COLUNA:=WX_COLUNA+1; END; END; //PEGANDO NOME DO ITEN IF (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) AND (WNOME = '') THEN BEGIN WHILE (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> ' ') AND (COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1) <> #9) DO BEGIN WNOME:=WNOME+COPY(MEMOITEM.Lines.Strings[WX],WX_COLUNA,1); WX_COLUNA:=WX_COLUNA+1; END; END; IF (WINDEX <> '') AND (WSLOT <> '') AND (WTX <> '') AND (WTY <> '') AND (WSERIAL <> '') AND (WOPT <> '') AND (WDROP <> '') AND (WNOME <> '') THEN BEGIN IF (EDIT1IAXE.Text <> '') AND (EDIT1FAXE.Text <> '') AND (EDIT1CAXE.Text <> '') THEN BEGIN IF (WITEM >= STRTOINT(EDIT1IAXE.Text)) AND (WITEM <= STRTOINT(EDIT1FAXE.Text)) THEN WVALOR:=EDIT1CAXE.TEXT; END; IF (EDIT2IAXE.Text <> '') AND (EDIT2FAXE.Text <> '') AND (EDIT2CAXE.Text <> '') THEN BEGIN IF (WITEM >= STRTOINT(EDIT2IAXE.Text)) AND (WITEM <= STRTOINT(EDIT2FAXE.Text)) THEN WVALOR:=EDIT2CAXE.TEXT; END; IF (EDIT3IAXE.Text <> '') AND (EDIT3FAXE.Text <> '') AND (EDIT3CAXE.Text <> '') THEN BEGIN IF (WITEM >= STRTOINT(EDIT3IAXE.Text)) AND (WITEM <= STRTOINT(EDIT3FAXE.Text)) THEN WVALOR:=EDIT3CAXE.TEXT; END; IF (EDIT4IAXE.Text <> '') AND (EDIT4FAXE.Text <> '') AND (EDIT4CAXE.Text <> '') THEN BEGIN IF (WITEM >= STRTOINT(EDIT4IAXE.Text)) AND (WITEM <= STRTOINT(EDIT4FAXE.Text)) THEN WVALOR:=EDIT4CAXE.TEXT; END; IF (EDIT5IAXE.Text <> '') AND (EDIT5FAXE.Text <> '') AND (EDIT5CAXE.Text <> '') THEN BEGIN IF (WITEM >= STRTOINT(EDIT5IAXE.Text)) AND (WITEM <= STRTOINT(EDIT5FAXE.Text)) THEN WVALOR:=EDIT5CAXE.TEXT; END; MEMOCASHSHOP.Lines.Add('1'+#9+WINDEX+#9+EDITWLVLAXES.Text+#9+'1'+#9+WTX+#9+WTY+#9+'63'+#9+'0'+#9+WVALOR+#9+'50'+#9+'//'+WNOME); WX_COLUNA:=0; WINDEX:=''; WSLOT:=''; WSKILL:=''; WTX:=''; WTY:=''; WSERIAL:=''; WOPT:=''; WDROP:=''; WNOME:=''; WX:=WX+1; IF COPY(MEMOITEM.Lines.Strings[WX],1,3) = 'end' THEN BEGIN GOTO FIM_AXES; END; END;