Dividir una cadena en una matriz dinámica
Una función que divide una cadena en partes separadas por una subcadena
y devuelve las piezas en una dinámica de matriz de cadena
Dividir una cadena en una matriz
Las siguientes funciones dividir una cadena en partes separadas por una cadena y devuelva las partes en una dinámica de matriz de cadena:
interfaz
& nbsp & nbsp tipo de
& nbsp & nbsp & nbsp & nbsp TStringArray = array de string
& nbsp & nbsp función Split(const str: string
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const separador: string = ','): TStringArray
& nbsp & nbsp función AnsiSplit(const str: string
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const separador: string = ','): TStringArray
& nbsp & nbsp aplicación
& nbsp & nbsp utiliza sysutils
& nbsp & nbsp función Split(const str: string
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const separador: string): TStringArray
& nbsp & nbsp // Devuelve un array con las partes de 'str' separados por 'separator'
& nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp i, n: integer
& nbsp & nbsp & nbsp & nbsp p, q, s: PChar
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp SetLength(Resultado, se Produce(str, separador) 1)
& nbsp & nbsp & nbsp & nbsp p := PChar(str)
& nbsp & nbsp & nbsp & nbsp s := PChar(separador)
& nbsp & nbsp & nbsp & nbsp n := Largo(separador)
& nbsp & nbsp & nbsp & nbsp i := 0
& nbsp & nbsp & nbsp & nbsp repetir
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp q := StrPos(p, s)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si q = nil entonces p := StrScan(p, #0)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetString(Resultado[i], p, p - p)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp p := q n
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp inc(i)
& nbsp & nbsp & nbsp & nbsp hasta q^ = #0
& nbsp & nbsp final
& nbsp & nbsp función AnsiSplit(const str: cadena
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const separador: string): TStringArray
& nbsp & nbsp // Devuelve un array con las partes de 'str' separados por 'separator'
& nbsp & nbsp // versión ANSI
& nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp i, n: integer
& nbsp & nbsp & nbsp & nbsp p, q, s: PChar
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp SetLength(Resultado, AnsiOccurs(str, separador) 1)
& nbsp & nbsp & nbsp & nbsp p := PChar(str)
& nbsp & nbsp & nbsp & nbsp s := PChar(separador)
& nbsp & nbsp & nbsp & nbsp n := Largo(separador)
& nbsp & nbsp & nbsp & nbsp i := 0
& nbsp & nbsp & nbsp & nbsp repetir
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp q := AnsiStrPos(p, s)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si q = nil entonces p := AnsiStrScan(p, #0)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetString(Resultado[i], p, p - p)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp p := q n
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp inc(i)
& nbsp & nbsp & nbsp & nbsp hasta q^ = #0
& nbsp & nbsp final
Ejemplo:
procedure TForm1.Button1Click(Sender: TObject)
& nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp: TStringArray
& nbsp & nbsp & nbsp & nbsp i: integer
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp r := Split('part1,part2,part3')
& nbsp & nbsp & nbsp & nbsp for i := 0 Longitud(un) - 1 do begin // mostrará tres cuadros de diálogo
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ShowMessage(a[i]) // 'parte 1', 'parte 2', 'part3'
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp final
Se puede ver un ejemplo de uso de un Fconnectionlog en lugar de una matriz dinámica en un artículo separado.
Dividir una cadena en una matriz dinamica
Dividir una cadena en una matriz dinamica : Multi-millones de consejos para hacer su vida mas facil.
Una funcion que divide una cadena en partes separadas por una subcadena
y devuelve las piezas en una dinamica de matriz de cadena
Dividir una cadena en una matriz
Las siguientes funciones dividir una cadena en partes separadas por una cadena y devuelva las partes en una dinamica de matriz de cadena:
interfaz
& nbsp & nbsp tipo de
& nbsp & nbsp & nbsp & nbsp TStringArray = array de string
& nbsp & nbsp funcion Split(const str: string
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const separador: string = ','): TStringArray
& nbsp & nbsp funcion AnsiSplit(const str: string
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const separador: string = ','): TStringArray
& nbsp & nbsp aplicacion
& nbsp & nbsp utiliza sysutils
& nbsp & nbsp funcion Split(const str: string
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const separador: string): TStringArray
& nbsp & nbsp // Devuelve un array con las partes de 'str' separados por 'separator'
& nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp i, n: integer
& nbsp & nbsp & nbsp & nbsp p, q, s: PChar
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp SetLength(Resultado, se Produce(str, separador) 1)
& nbsp & nbsp & nbsp & nbsp p := PChar(str)
& nbsp & nbsp & nbsp & nbsp s := PChar(separador)
& nbsp & nbsp & nbsp & nbsp n := Largo(separador)
& nbsp & nbsp & nbsp & nbsp i := 0
& nbsp & nbsp & nbsp & nbsp repetir
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp q := StrPos(p, s)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si q = nil entonces p := StrScan(p, #0)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetString(Resultado[i], p, p - p)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp p := q n
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp inc(i)
& nbsp & nbsp & nbsp & nbsp hasta q^ = #0
& nbsp & nbsp final
& nbsp & nbsp funcion AnsiSplit(const str: cadena
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp & nbsp const separador: string): TStringArray
& nbsp & nbsp // Devuelve un array con las partes de 'str' separados por 'separator'
& nbsp & nbsp // version ANSI
& nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp i, n: integer
& nbsp & nbsp & nbsp & nbsp p, q, s: PChar
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp SetLength(Resultado, AnsiOccurs(str, separador) 1)
& nbsp & nbsp & nbsp & nbsp p := PChar(str)
& nbsp & nbsp & nbsp & nbsp s := PChar(separador)
& nbsp & nbsp & nbsp & nbsp n := Largo(separador)
& nbsp & nbsp & nbsp & nbsp i := 0
& nbsp & nbsp & nbsp & nbsp repetir
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp q := AnsiStrPos(p, s)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp si q = nil entonces p := AnsiStrScan(p, #0)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp SetString(Resultado[i], p, p - p)
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp p := q n
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp inc(i)
& nbsp & nbsp & nbsp & nbsp hasta q^ = #0
& nbsp & nbsp final
Ejemplo:
procedure TForm1.Button1Click(Sender: TObject)
& nbsp & nbsp var
& nbsp & nbsp & nbsp & nbsp: TStringArray
& nbsp & nbsp & nbsp & nbsp i: integer
& nbsp & nbsp empezar
& nbsp & nbsp & nbsp & nbsp r := Split('part1,part2,part3')
& nbsp & nbsp & nbsp & nbsp for i := 0 Longitud(un) - 1 do begin // mostrara tres cuadros de dialogo
& nbsp & nbsp & nbsp & nbsp & nbsp & nbsp ShowMessage(a[i]) // 'parte 1', 'parte 2', 'part3'
& nbsp & nbsp & nbsp & nbsp final
& nbsp & nbsp final
Se puede ver un ejemplo de uso de un Fconnectionlog en lugar de una matriz dinamica en un articulo separado.
Dividir una cadena en una matriz dinámica
By Consejos Y Trucos
Dividir una cadena en una matriz dinámica : Multi-millones de consejos para hacer su vida más fácil.