elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


  Mostrar Mensajes
Páginas: 1 2 [3] 4 5 6
21  Programación / Programación Visual Basic / Re: [DUDA] Transparencia de un color en: 19 Diciembre 2007, 00:37 am
Pero eso, transparenta el color morado, todo el form... Y si sólo quiero que la imágen se vea transparente y que se vea, lo que hay debajo de la imagen, no lo que hay debajo del form.,...
22  Programación / Programación Visual Basic / [DUDA] Control Image en: 18 Diciembre 2007, 23:27 pm
Mi duda es que me gustaría saber que imagen hay cargada en un control Image.

If Image1. ... = ... Then
End If

Gracias. S2
23  Comunicaciones / Hacking Mobile / Creación aplicación similar a FTP_BT en: 14 Diciembre 2007, 16:38 pm
Hola a tod@s
Bueno me propuesto realizar un aplicación como FTP_BT en java para mi Nokia N70 y si la cosa fuera bien liberar el código por aquí para que entre todos la mejorásemos.
He pensado he intentar implementarle ademas funciones para que desde el propio móvil sin necesidad de un ordenador se pueda realizar el ataque Blue MAC Spoofing, es decir que podamos suplantar la mac configurándolo desde el propio terminal ahora va mi pregunta.

¿Es posible todo esto o estoy entrando en una utopía?  ;D

Gracias de antemano.
S2
24  Programación / Programación Visual Basic / Re: [DUDA] Resize en: 11 Diciembre 2007, 18:33 pm
Perdón. Tema zanjado. Solucionado.

Código:
Private Sub Form_Resize()
    Picture1.Move 9, 33, ScaleWidth - 18, ScaleHeight - 66
End Sub

PD: He escrito otro mensaje por si no se veía.

Gracias S2
25  Programación / Programación Visual Basic / [DUDA] Resize en: 11 Diciembre 2007, 18:11 pm
Se que es una duda muy básica, pero es que no me queda totalmente claro.

Tengo un form, con un PictureBox en medio. Al "resize" el form, quiero que el tamaño del picturebox sea el mismo que el del form peor que sobre por los lados 9 px y 9 px; por arriba 33 px; y por abajo otros 33 px.

Tengo esto:
Código:
Private Sub Form_Resize()
    Picture1.Left = 9
    Picture1.Top = 33
    Picture1.Width = FrmMain.Width - 66
    Picture1.Height = FrmMain.Height - 18
End Sub

Y esto:
Código:
Private Sub Form_Resize()
    Picture1.Move 9, 33, FrmMain.Width - 18, FrmMain.Height - 66
End Sub

Son 2 formas diferentes de hacerlo (creo)...

PD: He buscado en el foro pero me sale un mensaje que dice que lo que he introducido no coincide con nada, que lo ponga mas largo... Nose...

PD2: Gracias S2
26  Media / Juegos y Consolas / The DIG en: 5 Diciembre 2007, 23:19 pm
No se si alguien abrá jugado a The DIG... Si alguien ha jugado y ha conseguido pasarselo, sería tan amable de explicar que hay que hacer cuando se produce el eclipse y sale una estatua en la tumba. He leido varias guias y dicen que te tienes que subir a la cripta, pero... ¿cómo?

PD: No quiero una guía, sólo necesito un empujon, esque no tengo ni idea... me he quedao atascado completamente... :S

El juego es del año 1995 xD
Gracias.
27  Programación / Programación Visual Basic / Escáner IP en: 8 Noviembre 2007, 21:23 pm
Pues vamos a ver. "He hecho" (lo pongo entre comillas porque los créditos no son sólo mios) un escaneador de ips de redes. Y me preguntaba si se podría averiguar alguna cosa de una IP escaneada, cualquier cosa, ya sea el sistema operativo o nose... lo que sea...

El programa, básicamente, envía un ping en un bucle a un rango de IPs que introduzcas, si el ping se realiza correctamente, añade una ip a la lista de IPs. Simple.

El módulo de clase "cPing.cls" es de un tal José Rubí, desconozco de donde lo saqué, estaba por mi disco duro... Si aparece decidlo.

Expongo el código.

Módulo mdlGeneral.bas:
Código:
Public StopScan As Boolean
Public NumeroIPs As Integer

Sub Iniciar()
    StopScan = False
    ' Configura el ListView1
    With Form1.lstMaquinas
        .LabelEdit = False
        .View = lvwReport
        .ColumnHeaders.Add 1, , "IP"                ' Columna IP.
        .GridLines = True
    End With
    ' Establece los commands
    Form1.Command1.Enabled = True
    Form1.Command2.Enabled = False
End Sub

Sub IPScan(Desde As String, Hasta As String)
Dim i As Integer
Dim sstartIP() As String
Dim sendIP() As String
Dim startIP As String
Dim endIP As String

    sstartIP = Split(Desde, ".")
    sendIP = Split(Hasta, ".")
   
    ' comprueba que las IPs introducidas son del mismo tipo.
    If sstartIP(0) = sendIP(0) Then
        If sstartIP(1) = sendIP(1) Then
            If sstartIP(2) = sendIP(2) Then
           
                If sstartIP(3) < "1" Then
                    MsgBox "El formato de IP introducido no es correcto."
                Else
                    If sstartIP(3) > "255" Then
                        MsgBox "El formato de IP introducido no es correcto."
                    Else
                        If sendIP(3) < "1" Then
                            MsgBox "El formato de IP introducido no es correcto."
                        Else
                            If sendIP(3) > "255" Then
                                MsgBox "El formato de IP introducido no es correcto."
                            Else
                                NumeroIPs = 0
                               
                                ' Configura la barra de progreso.
                                With Form1.pbScan
                                    .Min = sstartIP(3)
                                    .Max = sendIP(3)
                                    .Value = sstartIP(3)
                                End With
                               
                                ' Desactiva los commands
                                Form1.Command1.Enabled = False
                                Form1.Command2.Enabled = True
                               
                                ' Inicia el bucle.
                                For i = sstartIP(3) To sendIP(3)
                                    If StopScan = True Then
                                        GoTo PararScan
                                    Else
                                        Form1.Label3.Caption = "Estado: Escaneando IPs (" & i & "/" & sendIP(3) & ")"
                                        Form1.pbScan.Value = i
                                        Call HacerPing(sstartIP(0) & "." & sstartIP(1) & "." & sstartIP(2) & "." & i)
                                    End If
                                Next i
                               
                                GoTo FinScan
                            End If
                        End If
                    End If
                End If
            Else
                MsgBox "Las IPs no son del mismo tipo."
            End If
        Else
            MsgBox "Las IPs no son del mismo tipo."
        End If
    Else
        MsgBox "Las IPs no son del mismo tipo."
    End If
   
    Exit Sub

' Acciones al terminar el scan.
FinScan:
    MsgBox "Encontradas " & NumeroIPs & " IP's."
    Form1.pbScan.Value = sstartIP(3)
    Form1.Label3.Caption = "Estado: Desocupado."
    Form1.Command1.Enabled = True
    Form1.Command2.Enabled = False
    StopScan = False
    Exit Sub
   
' Acciones si se cancela el scan.
PararScan:
    Form1.pbScan.Value = sstartIP(3)
    Form1.Label3.Caption = "Estado: Desocupado."
    Form1.Command1.Enabled = True
    Form1.Command2.Enabled = False
    StopScan = False
    Exit Sub
End Sub
Sub HacerPing(IP As String)
Dim Item As ListItem
Dim Ping As cPing
Set Ping = New cPing

    Ping.IPDestino = IP
    Ping.LongitudDatos = 1
    Ping.Ping

    DoEvents
    If Ping.Descripcion = "" Then
        Set Item = Form1.lstMaquinas.ListItems.Add(, , IP)
        NumeroIPs = NumeroIPs + 1
    End If
End Sub

Módulo de clase cPing.cls:
Código:
'Programado por José Rubí
'
Option Explicit

'variables locales que contienen valores de propiedad
Private mvarIPDestino As String 'copia local
Private mvarLongitudDatos As Long 'copia local
Private mvarTimeOut As Long 'copia local
Private mvarEstado As Long 'copia local
Private mvarDescripcion As String 'copia local
Private mvarTiempo As Long 'copia local

'códigos de error
Private Const IP_STATUS_BASE = 11000
Private Const IP_SUCCESS = 0
Private Const IP_BUF_TOO_SMALL = (11000 + 1)
Private Const IP_DEST_NET_UNREACHABLE = (11000 + 2)
Private Const IP_DEST_HOST_UNREACHABLE = (11000 + 3)
Private Const IP_DEST_PROT_UNREACHABLE = (11000 + 4)
Private Const IP_DEST_PORT_UNREACHABLE = (11000 + 5)
Private Const IP_NO_RESOURCES = (11000 + 6)
Private Const IP_BAD_OPTION = (11000 + 7)
Private Const IP_HW_ERROR = (11000 + 8)
Private Const IP_PACKET_TOO_BIG = (11000 + 9)
Private Const IP_REQ_TIMED_OUT = (11000 + 10)
Private Const IP_BAD_REQ = (11000 + 11)
Private Const IP_BAD_ROUTE = (11000 + 12)
Private Const IP_TTL_EXPIRED_TRANSIT = (11000 + 13)
Private Const IP_TTL_EXPIRED_REASSEM = (11000 + 14)
Private Const IP_PARAM_PROBLEM = (11000 + 15)
Private Const IP_SOURCE_QUENCH = (11000 + 16)
Private Const IP_OPTION_TOO_BIG = (11000 + 17)
Private Const IP_BAD_DESTINATION = (11000 + 18)
Private Const IP_ADDR_DELETED = (11000 + 19)
Private Const IP_SPEC_MTU_CHANGE = (11000 + 20)
Private Const IP_MTU_CHANGE = (11000 + 21)
Private Const IP_UNLOAD = (11000 + 22)
Private Const IP_ADDR_ADDED = (11000 + 23)
Private Const IP_GENERAL_FAILURE = (11000 + 50)
Private Const IP_WROUNG = (11000 + 50)              '//////Variable nueva
Private Const MAX_IP_STATUS = 11000 + 50
Private Const IP_PENDING = (11000 + 255)
Private Const PING_TIMEOUT = 200
Private Const WS_VERSION_REQD = &H101
Private Const WS_VERSION_MAJOR = WS_VERSION_REQD \ &H100 And &HFF&
Private Const WS_VERSION_MINOR = WS_VERSION_REQD And &HFF&
Private Const MIN_SOCKETS_REQD = 1
Private Const SOCKET_ERROR = -1
Private Const MAX_WSADescription = 256
Private Const MAX_WSASYSStatus = 128
'estructuras
Private Type ICMP_OPTIONS
    Ttl             As Byte
    Tos             As Byte
    Flags           As Byte
    OptionsSize     As Byte
    OptionsData     As Long
End Type
Private ICMPOPT As ICMP_OPTIONS
Private Type ICMP_ECHO_REPLY
    Address         As Long
    status          As Long
    RoundTripTime   As Long
    DataSize        As Integer
    Reserved        As Integer
    DataPointer     As Long
    Options         As ICMP_OPTIONS
    Data            As String * 250
End Type
Private Type WSADATA
    wVersion As Integer
    wHighVersion As Integer
    szDescription(0 To MAX_WSADescription) As Byte
    szSystemStatus(0 To MAX_WSASYSStatus) As Byte
    wMaxSockets As Integer
    wMaxUDPDG As Integer
    dwVendorInfo As Long
End Type

'funciones del api
Private Declare Function IcmpCreateFile Lib "icmp.dll" () As Long
Private Declare Function IcmpCloseHandle Lib "icmp.dll" _
   (ByVal IcmpHandle As Long) As Long
Private Declare Function IcmpSendEcho Lib "icmp.dll" _
   (ByVal IcmpHandle As Long, ByVal DestinationAddress As Long, _
    ByVal RequestData As String, ByVal RequestSize As Integer, _
    ByVal RequestOptions As Long, ReplyBuffer As ICMP_ECHO_REPLY, _
    ByVal ReplySize As Long, ByVal Timeout As Long) As Long
Private Declare Function WSAGetLastError Lib "WSOCK32.DLL" () As Long
Private Declare Function WSAStartup Lib "WSOCK32.DLL" _
   (ByVal wVersionRequired As Long, lpWSADATA As WSADATA) As Long
Private Declare Function WSACleanup Lib "WSOCK32.DLL" () As Long

Private Function AddressStringToLong(ByVal tmp As String) As Long
Dim i As Integer
Dim parts(1 To 4) As String
i = 0
'we have to extract each part of the  '123.456.789.123 string, delimited by
'a period
While InStr(tmp, ".") > 0
    i = i + 1
    parts(i) = Mid(tmp, 1, InStr(tmp, ".") - 1)
    tmp = Mid(tmp, InStr(tmp, ".") + 1)
Wend
i = i + 1
parts(i) = tmp
If i <> 4 Then
    AddressStringToLong = 0
    Exit Function
End If
'build the long value out of the  'hex of the extracted strings
AddressStringToLong = Val("&H" & Right("00" & Hex(parts(4)), 2) & _
                         Right("00" & Hex(parts(3)), 2) & _
                         Right("00" & Hex(parts(2)), 2) & _
                         Right("00" & Hex(parts(1)), 2))


End Function


Private Function HiByte(ByVal wParam As Integer)
HiByte = wParam \ &H100 And &HFF&
End Function

Private Function LoByte(ByVal wParam As Integer)
LoByte = wParam And &HFF&
End Function

Private Function SocketsCleanup() As Boolean
Dim X As Long
X = WSACleanup()
If X <> 0 Then
    MsgBox "Windows Sockets error " & Trim$(Str$(X)) & _
           " occurred in Cleanup.", vbExclamation
    SocketsCleanup = False
Else
    SocketsCleanup = True
End If
End Function

Private Function SocketsInitialize() As Boolean
Dim WSAD As WSADATA
Dim X As Integer
Dim szLoByte As String, szHiByte As String, szBuf As String
X = WSAStartup(WS_VERSION_REQD, WSAD)
If X <> 0 Then
    MsgBox "Windows Sockets for 32 bit Windows " & _
           "environments is not successfully responding."
    SocketsInitialize = False
    Exit Function
End If
If LoByte(WSAD.wVersion) < WS_VERSION_MAJOR Or (LoByte(WSAD.wVersion) = WS_VERSION_MAJOR And _
    HiByte(WSAD.wVersion) < WS_VERSION_MINOR) Then
    szHiByte = Trim$(Str$(HiByte(WSAD.wVersion)))
    szLoByte = Trim$(Str$(LoByte(WSAD.wVersion)))
    szBuf = "Windows Sockets Version " & szLoByte & "." & szHiByte
    szBuf = szBuf & " is not supported by Windows " & _
                        "Sockets for 32 bit Windows environments."
    MsgBox szBuf, vbExclamation
    SocketsInitialize = False
    Exit Function
End If
If WSAD.wMaxSockets < MIN_SOCKETS_REQD Then
    szBuf = "This application requires a minimum of " & _
    Trim$(Str$(MIN_SOCKETS_REQD)) & " supported sockets."
    MsgBox szBuf, vbExclamation
    SocketsInitialize = False
    Exit Function
End If
SocketsInitialize = True
End Function



Public Sub Ping()
    Dim hPort As Long
    Dim dwAddress As Long
    Dim sDataToSend As String
    Dim iOpt As Long
    Dim ECHO As ICMP_ECHO_REPLY
    Dim res As Boolean
   
    res = SocketsInitialize
    If res Then
        sDataToSend = String$(mvarLongitudDatos, "A")
        dwAddress = AddressStringToLong(mvarIPDestino)
        hPort = IcmpCreateFile()
        If IcmpSendEcho(hPort, dwAddress, sDataToSend, Len(sDataToSend), _
                        0, ECHO, Len(ECHO), mvarTimeOut) Then
            'the ping succeeded,.Status will be 0
            '.RoundTripTime is the time in ms for the ping to complete,
            '.Data is the data returned (NULL terminated)
            '.Address is the Ip address that actually replied
            '.DataSize is the size of the string in .Data
             mvarEstado = 0
             mvarTiempo = ECHO.RoundTripTime
        Else
            mvarTiempo = 0
            mvarEstado = Abs(ECHO.status)
            If mvarEstado = 0 Then mvarEstado = IP_GENERAL_FAILURE
        End If
        Call IcmpCloseHandle(hPort)
        res = SocketsCleanup
Else
    mvarEstado = IP_GENERAL_FAILURE
    mvarTiempo = 0
End If
mvarDescripcion = GetStatusCode(mvarEstado)
End Sub

Private Function GetStatusCode(status As Long) As String
Dim msg As String

Select Case status
    Case IP_SUCCESS:               msg = ""
    Case IP_BUF_TOO_SMALL:         msg = "Buffer demasiado pequeño"
    Case IP_DEST_NET_UNREACHABLE:  msg = "Red de destino no encontrada"
    Case IP_DEST_HOST_UNREACHABLE: msg = "Host destino no encontrado"
    Case IP_DEST_PROT_UNREACHABLE: msg = "Dest prot unreachable"
    Case IP_DEST_PORT_UNREACHABLE: msg = "Puerto destino no encontrado"
    Case IP_NO_RESOURCES:          msg = "Sin recursos"
    Case IP_BAD_OPTION:            msg = "Opción inválida"
    Case IP_HW_ERROR:              msg = "Error hardware"
    Case IP_PACKET_TOO_BIG:        msg = "Paquete demasiado grande"
    Case IP_REQ_TIMED_OUT:         msg = "El tiempo de espera se ha agotado"
    Case IP_BAD_REQ:               msg = "Respuesta incorrecta"
    Case IP_BAD_ROUTE:             msg = "Ruta inválida"
    Case IP_TTL_EXPIRED_TRANSIT:   msg = "Ttl finalizado"
    Case IP_TTL_EXPIRED_REASSEM:   msg = "Ttl expired reassem"
    Case IP_PARAM_PROBLEM:         msg = "Error en parámetros"
    Case IP_SOURCE_QUENCH:         msg = "Source quench"
    Case IP_OPTION_TOO_BIG:        msg = "Opción demasiado grande"
    Case IP_BAD_DESTINATION:       msg = "Destino incorrecto"
    Case IP_ADDR_DELETED:          msg = "addr deleted"
    Case IP_SPEC_MTU_CHANGE:       msg = "spec mtu change"
    Case IP_MTU_CHANGE:            msg = "ip mtu_change"
    Case IP_UNLOAD:                msg = "unload"
    Case IP_ADDR_ADDED:            msg = "addr added"
    Case IP_GENERAL_FAILURE:       msg = "Fallo general"
    Case IP_PENDING:               msg = "Pendiente"
    Case PING_TIMEOUT:             msg = "Ping timeout"
    Case Else:                     msg = "Recibido mensaje desconocido"
End Select
GetStatusCode = msg
End Function


Public Property Get Tiempo() As Long
    'se usa cuando se asigna un valor a una propiedad, en el lado derecho de la asignación.
    'Syntax: Debug.Print X.Tiempo
    Tiempo = mvarTiempo
End Property





Public Property Get Descripcion() As String
    'se usa cuando se asigna un valor a una propiedad, en el lado derecho de la asignación.
    'Syntax: Debug.Print X.Descripcion
    Descripcion = mvarDescripcion
End Property


Public Property Get Estado() As Long
    'se usa cuando se asigna un valor a una propiedad, en el lado derecho de la asignación.
    'Syntax: Debug.Print X.Estado
    Estado = mvarEstado
End Property



Public Property Let Timeout(ByVal vData As Long)
    'se usa cuando se asigna un valor a una propiedad, en el lado izquierdo de la asignación.
    'Syntax: X.TimeOut = 5
    mvarTimeOut = vData
    If mvarTimeOut < 1 Then mvarTimeOut = 1
End Property


Public Property Get Timeout() As Long
    'se usa cuando se asigna un valor a una propiedad, en el lado derecho de la asignación.
    'Syntax: Debug.Print X.TimeOut
    Timeout = mvarTimeOut
End Property



Public Property Let LongitudDatos(ByVal vData As Long)
    'se usa cuando se asigna un valor a una propiedad, en el lado izquierdo de la asignación.
    'Syntax: X.LongitudDatos = 5
    mvarLongitudDatos = vData
    If mvarLongitudDatos > 250 Then mvarLongitudDatos = 250
    If mvarLongitudDatos < 1 Then mvarLongitudDatos = 1
End Property


Public Property Get LongitudDatos() As Long
    'se usa cuando se asigna un valor a una propiedad, en el lado derecho de la asignación.
    'Syntax: Debug.Print X.LongitudDatos
    LongitudDatos = mvarLongitudDatos
End Property



Public Property Let IPDestino(ByVal vData As String)
    'se usa cuando se asigna un valor a una propiedad, en el lado izquierdo de la asignación.
    'Syntax: X.IPDestino = 5
    mvarIPDestino = vData
End Property


Public Property Get IPDestino() As String
    'se usa cuando se asigna un valor a una propiedad, en el lado derecho de la asignación.
    'Syntax: Debug.Print X.IPDestino
    IPDestino = mvarIPDestino
End Property



Private Sub Class_Initialize()
    mvarLongitudDatos = 32
    mvarTimeOut = 1500
End Sub


Formulario Form1.frm:
Código:
Private Sub Command1_Click()
    ' Text1 y Text2 son el rango de IPs
    Call IPScan(Text1.Text, Text2.Text)
End Sub

Private Sub Command2_Click()
    StopScan = True
End Sub

Private Sub Command3_Click()
    Call HacerPing(Text2.Text)
End Sub

Private Sub Form_Load()
    Call Iniciar
End Sub


Y eso es. Pues eso, que si alguien puede decirme hasta donde es capaz de llegar Winsock.ocx sin necesidar de usar aplicaciones cliente/servidor.
28  Programación / Programación Visual Basic / Ideas Troyano en: 7 Noviembre 2007, 23:24 pm
Abro este post para que la gente que no sea demasiado creativa (como yo), pueda tener idea de módulos para un troyano. Exponed ideas con o sin code, como querais. Yo sólo lo explico de manera esquemática, la conexión Cliente/Servidor corre por vuestra cuenta.


1. - Averiguar información básica de un equipo:
Código:
'APIS
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function GetComputerName Lib "kernel32" Alias "GetComputerNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Declare Function GetWindowsDirectory Lib "kernel32" Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, ByVal nSize As Long) As Long

Private Sub Command1_Click()
    txtUser.Text = NombreUsuario
    txtWin.Text = WinDir
    txtPC.Text = NombreEquipo
End Sub

Function WinDir() As String
Dim Contenido As String
    Contenido = String(255, 0)
    W = GetWindowsDirectory(Contenido, Len(Contenido))
    WinDir = Contenido
End Function

Function NombreUsuario() As String
Dim Contenido As String
    Contenido = String(255, 0)
    W = GetUserName(Contenido, Len(Contenido))
    NombreUsuario = Contenido
End Function
Function NombreEquipo() As String
Dim Contenido As String
    Contenido = String(255, 0)
    W = GetComputerName(Contenido, Len(Contenido))
    NombreEquipo = Contenido
End Function

2. - Minimizar ventanas:
Código:
' APIS
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
    ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
   
' Constantes.
Private Const KEYEVENTF_KEYUP = &H2
Private Const VK_LWIN = &H5B

Private Sub Command1_Click()
    Call keybd_event(VK_LWIN, 0, 0, 0)
    Call keybd_event(77, 0, 0, 0)
    Call keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0)
End Sub

3. - Capturar pantalla:
Código:
' APIS
Private Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, _
    ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

Private Sub Command1_Click()
    Call keybd_event(44, 0, 0&, 0&)
        DoEvents
        SavePicture Clipboard.GetData, App.Path & "\Captura.bmp"
End Sub
29  Programación / Programación Visual Basic / Re: Duda con "Split" en: 31 Octubre 2007, 13:24 pm
Tughack, si, puede que lleves razón. Pero tu crees que es necesario esa manera de decirlo? -.-
30  Programación / Programación Visual Basic / Duda con "Split" en: 31 Octubre 2007, 11:12 am
Pos mi problema es el siguiente: Estoy separando una cadena por el caracter "_" y la cadena es la siguiente:
    "Hola_HJZR4_Quetal_bien"
Cómo puedo contar las separaciones que hay? En el caso de que no supiese cual es la cadena...

Si no se entiende, decidlo y me intento explicar mejor ^^

Muchas gracias. :p

Páginas: 1 2 [3] 4 5 6
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines