Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Da C a PHP

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    2

    Da C a PHP

    Saluti a tutti i partecipanti di questo bel forum, posto questo quesito sperando che quache esperto possa darmi una risposta: ho questo codice in C e dovrei fare cosa analoga in PHP

    Function Char$(T$)
    n% = 0
    For i% = 1 To Len(T$)
    n% = (n% Xor Asc(Mid$(Ts, i%, 1))) *2
    If n% > 255 Then n% = (n% And 255) + 1
    Next i%
    Char$ = Chr$(n%)
    End Function

    Praticamente questo codice agisce su una tabella eseguendo delle operazioni, creando a secodo dei cararteri inseriti un codice ascii di controllo.

  2. #2
    Ciao,

    dalla domanda è evidente che non conosci PHP, ma è anche evidente che non conosci il C dato che il C e la sintassi del codice che hai postato non hanno assolutamente nulla da spartire.

    Credo sia Visual Basic, anche se sinceramente con quest'ultimo sono abbastanza arrugginito. Comunque, se non è vb, credo sia qualcosa di molto simile e che comunque sia BASIC-like.

    Detto questo, la traduzione letterale del codice è
    codice:
    function char($t)
    {
        $n = 0
        for($i = 0; $i < strlen($t); $i++)
        {
            $n = ($n ^ ord($t{$i})) * 2;
            if ($n > 255)
            {
                $n = ($n & 255) + 1
            }
        }
        
        return chr($n);
    }
    Il codice non sembra far altro che ciclare una stringa per restituire un codice di controllo, calcolato partendo dallo xor * 2 dei caratteri tra loro. Nel caso in cui $n supera 255, i caratteri della tabella ascii vanno da 0 a 255, allora fa un AND con 255 e ci somma 1, ovvero praticamente tiene attivi i primi 8 bit di $n (dato che ha superato 255 alcuni saranno spenti) applicando una maschera booleana e somma 1.

    Il codice, cosi per come l'ho riscritto, dubito che mimi al 100% il funzionamento del codice originale, soprattutto perché, se non ricordo male, in visual basic gli indici di posizione nelle stringhe non potevano avere zero.

    In ogni caso sarà sicuramente necessario fare qualche correzione e/o affinamento.
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Utente di HTML.it L'avatar di dottwatson
    Registrato dal
    Feb 2007
    Messaggi
    3,012
    daniele_dll rulez
    Non sempre essere l'ultimo è un male... almeno non devi guardarti le spalle

    il mio profilo su PHPClasses e il mio blog laboweb

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2011
    Messaggi
    2
    Grazie per la risposta daniele_dll, come hai detto non conosco nessun codice di programmazione, sono un progettista hardware e per lavoro ho dovuto creare un semplice codice PHP, scopiazzando in giro e facendo un sacco di prove, ma alla fine ho risolto.
    Il problema viene adesso, comunque con l'aiuto di persone come voi e con tanta volontà spero di riuscirci.

    Il codice in questione potrebbe essere VB e fa esattamente quello che hai detto, ora farò alcune prove per vedere come si comporta.
    Ciao.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.