热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SAP播放本地视频及音频(仅限于windowMediaPlayer可播放文件)

这个是从SCN上看到的,自己稍加修改,编制,做的还可以,可以播放视频,音频,唯一的不足就是不能控制播放视频的显示窗口大小,希望有人能帮忙解决,感激!视频播放类:(新建类Z_CL_M

这个是从SCN上看到的,自己稍加修改,编制,做的还可以,可以播放视频,音频,唯一的不足就是不能控制播放视频的显示窗口大小,希望有人能帮忙解决,感激!

视频播放类:(新建类Z_CL_MEDIA,点击基于原代码,复制下面代码进去,激活)

class Z_CL_MEDIA definition
  public
  inheriting from CL_GUI_CONTROL
  final
  create public .

public section.
  type-pools CNTL .

  methods CONSTRUCTOR
    importing
      !PARENT type ref to CL_GUI_CONTAINER .
  methods SETDATASOURCE
    importing
      !FILENAME type STRING .

  methods DISPATCH
    redefinition .
  methods SET_HEIGHT
    redefinition .
  methods SET_WIDTH
    redefinition .
  methods SET_POSITION
    redefinition .
protected section.
ENDCLASS.



CLASS Z_CL_MEDIA IMPLEMENTATION.


* ---------------------------------------------------------------------------------------+
* | Instance Public Method Z_CL_MEDIA->CONSTRUCTOR
* +-------------------------------------------------------------------------------------------------+
* | [--->] PARENT                         TYPE REF TO CL_GUI_CONTAINER
* +--------------------------------------------------------------------------------------
    METHOD constructor.
      CALL METHOD super->constructor
        EXPORTING
          clsid    = MediaPlayer.MediaPlayer
          parent   = parent
          lifetime = 2
        EXCEPTIONS
          OTHERS   = 1.

    ENDMETHOD.


* ---------------------------------------------------------------------------------------+
* | Instance Public Method Z_CL_MEDIA->DISPATCH
* +-------------------------------------------------------------------------------------------------+
* | [--->] CARGO                          TYPE        SYUCOMM
* | [--->] EVENTID                        TYPE        I
* | [--->] IS_SHELLEVENT                  TYPE        CHAR1
* | [--->] IS_SYSTEMDISPATCH              TYPE        CHAR1(optional)
* | [EXC!] CNTL_ERROR
* +--------------------------------------------------------------------------------------
    METHOD dispatch.
      CALL METHOD cl_gui_cfw=>flush.
    ENDMETHOD.


* ---------------------------------------------------------------------------------------+
* | Instance Public Method Z_CL_MEDIA->SETDATASOURCE
* +-------------------------------------------------------------------------------------------------+
* | [--->] FILENAME                       TYPE        STRING
* +--------------------------------------------------------------------------------------
    METHOD setdatasource.
      CALL METHOD set_property
        EXPORTING
          property = FileName
          value    = filename.

*      CALL METHOD set_width
*        EXPORTING
*          width = 500.
*      CALL METHOD set_height
*        EXPORTING
*          height = 200.
      CALL METHOD me->set_position
        EXPORTING
          height            = 200
          left              = 10
          top               = 10
          width             = 500
        EXCEPTIONS
          cntl_error        = 1
          cntl_system_error = 2
          OTHERS            = 3.
      IF sy-subrc <> 0.
      ENDIF.


      CALL METHOD cl_gui_cfw=>flush.
    ENDMETHOD.


* ---------------------------------------------------------------------------------------+
* | Instance Public Method Z_CL_MEDIA->SET_HEIGHT
* +-------------------------------------------------------------------------------------------------+
* | [--->] HEIGHT                         TYPE        I
* | [EXC!] CNTL_ERROR
* +--------------------------------------------------------------------------------------
  METHOD set_height.
    CALL METHOD super->set_height
      EXPORTING
        height     = height
      EXCEPTIONS
        cntl_error = 1
        OTHERS     = 2.
    IF sy-subrc <> 0.
* Implement suitable error handling here
    ENDIF.
  ENDMETHOD.


* ---------------------------------------------------------------------------------------+
* | Instance Public Method Z_CL_MEDIA->SET_POSITION
* +-------------------------------------------------------------------------------------------------+
* | [--->] HEIGHT                         TYPE        I(optional)
* | [--->] LEFT                           TYPE        I(optional)
* | [--->] TOP                            TYPE        I(optional)
* | [--->] WIDTH                          TYPE        I(optional)
* | [EXC!] CNTL_ERROR
* | [EXC!] CNTL_SYSTEM_ERROR
* +--------------------------------------------------------------------------------------
  METHOD set_position.
    CALL METHOD super->set_position
      EXPORTING
        height            = height
        left              = left
        top               = top
        width             = width
      EXCEPTIONS
        cntl_error        = 1
        cntl_system_error = 2
        OTHERS            = 3.
    IF sy-subrc <> 0.
    ENDIF.
  ENDMETHOD.


* ---------------------------------------------------------------------------------------+
* | Instance Public Method Z_CL_MEDIA->SET_WIDTH
* +-------------------------------------------------------------------------------------------------+
* | [--->] WIDTH                          TYPE        I
* | [EXC!] CNTL_ERROR
* +--------------------------------------------------------------------------------------
  METHOD set_width.
    CALL METHOD super->set_width
      EXPORTING
        width      = width
      EXCEPTIONS
        cntl_error = 1
        OTHERS     = 2.
    IF sy-subrc <> 0.
    ENDIF.
  ENDMETHOD.
ENDCLASS.



程序ZMEDIA_PLAY
TOP:
TYPES:BEGIN OF ty_list,
        sel(1),
        name(50),
        string   TYPE string,
      END OF ty_list.
DATA:gv_con TYPE REF TO cl_gui_custom_container.
DATA:gl_meida      TYPE REF TO z_cl_media,
     cl_control    TYPE REF TO i_oi_container_control,
     cl_error      TYPE REF TO i_oi_error,
     g_has_activex TYPE c,
     cl_errors     TYPE REF TO i_oi_error OCCURS 0 WITH HEADER LINE.

DATA:gt_list TYPE TABLE OF ty_list.
DATA:gw_list LIKE LINE OF gt_list.

*&SPWIZARD: DECLARATION OF TABLECONTROL ‘TC_9876‘ ITSELF
CONTROLS: tc_9876 TYPE TABLEVIEW USING SCREEN 9876.

*&SPWIZARD: LINES OF TABLECONTROL ‘TC_9876‘
DATA:     g_tc_9876_lines  LIKE sy-loopc.

DATA:     ok_code LIKE sy-ucomm.

PBO:

*----------------------------------------------------------------------*
***INCLUDE ZMEIDA_PBO.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  STATUS_9876  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE status_9876 OUTPUT.
  SET PF-STATUS MEDIA.
  "  SET TITLEBAR ‘xxx‘.
ENDMODULE.
*&---------------------------------------------------------------------*
*&      Module  MOD_INI_CON  OUTPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE mod_ini_con OUTPUT.
  DATA:gv_width TYPE i.
  DATA:gv_height TYPE i.

  IF gv_con IS INITIAL.
    CREATE OBJECT gv_con
      EXPORTING
*       parent                      =
        container_name              = GV_CON
*       style                       =
*       lifetime                    = lifetime_default
*       repid                       =
*       dynnr                       =
*       no_autodef_progid_dynnr     =
      EXCEPTIONS
        cntl_error                  = 1
        cntl_system_error           = 2
        create_error                = 3
        lifetime_error              = 4
        lifetime_dynpro_dynpro_link = 5
        OTHERS                      = 6.
    IF sy-subrc <> 0.
    ENDIF.

  ENDIF.


  IF gl_meida IS INITIAL.
    CREATE OBJECT gl_meida
      EXPORTING
        parent = gv_con.
  ENDIF.


  IF gt_list IS INITIAL.
    gw_list-string = C:\Wildlife.wmv.
    gw_list-name = Wildlife.wmv.
    APPEND gw_list TO gt_list.
    gw_list-string = C:\123.mp4.
    gw_list-name = 123.mp4.
    APPEND gw_list TO gt_list.
    gw_list-string = C:\正业之歌.mp3.
    gw_list-name = 正业之歌.mp3.
    APPEND gw_list TO gt_list.
  ENDIF.

  CALL METHOD cl_gui_cfw=>flush.


ENDMODULE.

*&SPWIZARD: OUTPUT MODULE FOR TC ‘TC_9876‘. DO NOT CHANGE THIS LINE!
*&SPWIZARD: UPDATE LINES FOR EQUIVALENT SCROLLBAR
MODULE tc_9876_change_tc_attr OUTPUT.
  DESCRIBE TABLE gt_list LINES tc_9876-lines.
ENDMODULE.

*&SPWIZARD: OUTPUT MODULE FOR TC ‘TC_9876‘. DO NOT CHANGE THIS LINE!
*&SPWIZARD: GET LINES OF TABLECONTROL
MODULE tc_9876_get_lines OUTPUT.
  g_tc_9876_lines = sy-loopc.
ENDMODULE.

PAI:

*----------------------------------------------------------------------*
***INCLUDE ZMEIDA_PAI.
*----------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*&      Module  USER_COMMAND_9876  INPUT
*&---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
MODULE user_command_9876 INPUT.
  CASE sy-ucomm.
    WHEN BACK.
      LEAVE TO SCREEN 0.
    WHEN CANL OR EXIT.
      LEAVE PROGRAM.
    WHEN PLAY.
      READ TABLE gt_list INTO gw_list WITH KEY sel = X.
      IF sy-subrc = 0.
        CALL METHOD gl_meida->setdatasource
          EXPORTING
            filename = gw_list-string.
      ENDIF.
    WHEN ADD.
      PERFORM prm_add_list.
    WHEN OTHERS.
  ENDCASE.
  CLEAR:sy-ucomm.
ENDMODULE.

*&SPWIZARD: INPUT MODUL FOR TC ‘TC_9876‘. DO NOT CHANGE THIS LINE!
*&SPWIZARD: MARK TABLE
MODULE tc_9876_mark INPUT.
  DATA: g_tc_9876_wa2 LIKE LINE OF gt_list.
  IF tc_9876-line_sel_mode = 1
  AND gw_list-sel = X.
    LOOP AT gt_list INTO g_tc_9876_wa2
      WHERE sel = X.
      g_tc_9876_wa2-sel = ‘‘.
      MODIFY gt_list
        FROM g_tc_9876_wa2
        TRANSPORTING sel.
    ENDLOOP.
  ENDIF.
  MODIFY gt_list
    FROM gw_list
    INDEX tc_9876-current_line
    TRANSPORTING sel.
ENDMODULE.

*&SPWIZARD: INPUT MODULE FOR TC ‘TC_9876‘. DO NOT CHANGE THIS LINE!
*&SPWIZARD: PROCESS USER COMMAND
MODULE tc_9876_user_command INPUT.
  ok_code = sy-ucomm.
  PERFORM user_ok_tc USING    TC_9876
                              GT_LIST
                              SEL
                     CHANGING ok_code.
  sy-ucomm = ok_code.
ENDMODULE.

frm:

*----------------------------------------------------------------------*
*   INCLUDE TABLECONTROL_FORMS                                         *
*----------------------------------------------------------------------*

*&---------------------------------------------------------------------*
*&      Form  USER_OK_TC                                               *
*&---------------------------------------------------------------------*
 FORM user_ok_tc USING    p_tc_name TYPE dynfnam
                          p_table_name
                          p_mark_name
                 CHANGING p_ok      LIKE sy-ucomm.

*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
   DATA: l_ok     TYPE sy-ucomm,
         l_offset TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*

*&SPWIZARD: Table control specific operations                          *
*&SPWIZARD: evaluate TC name and operations                            *
   SEARCH p_ok FOR p_tc_name.
   IF sy-subrc <> 0.
     EXIT.
   ENDIF.
   l_offset = strlen( p_tc_name ) + 1.
   l_ok = p_ok+l_offset.
*&SPWIZARD: execute general and TC specific operations                 *
   CASE l_ok.
     WHEN INSR.                      "insert row
       PERFORM fcode_insert_row USING    p_tc_name
                                         p_table_name.
       CLEAR p_ok.

     WHEN DELE.                      "delete row
       PERFORM fcode_delete_row USING    p_tc_name
                                         p_table_name
                                         p_mark_name.
       CLEAR p_ok.

     WHEN P-- OR                     "top of list
          P-  OR                     "previous page
          P+  OR                     "next page
          P++.                       "bottom of list
       PERFORM compute_scrolling_in_tc USING p_tc_name
                                             l_ok.
       CLEAR p_ok.
*     WHEN ‘L--‘.                       "total left
*       PERFORM FCODE_TOTAL_LEFT USING P_TC_NAME.
*
*     WHEN ‘L-‘.                        "column left
*       PERFORM FCODE_COLUMN_LEFT USING P_TC_NAME.
*
*     WHEN ‘R+‘.                        "column right
*       PERFORM FCODE_COLUMN_RIGHT USING P_TC_NAME.
*
*     WHEN ‘R++‘.                       "total right
*       PERFORM FCODE_TOTAL_RIGHT USING P_TC_NAME.
*
     WHEN MARK.                      "mark all filled lines
       PERFORM fcode_tc_mark_lines USING p_tc_name
                                         p_table_name
                                         p_mark_name   .
       CLEAR p_ok.

     WHEN DMRK.                      "demark all filled lines
       PERFORM fcode_tc_demark_lines USING p_tc_name
                                           p_table_name
                                           p_mark_name .
       CLEAR p_ok.

*     WHEN ‘SASCEND‘   OR
*          ‘SDESCEND‘.                  "sort column
*       PERFORM FCODE_SORT_TC USING P_TC_NAME
*                                   l_ok.

   ENDCASE.

 ENDFORM.                              " USER_OK_TC

*&---------------------------------------------------------------------*
*&      Form  FCODE_INSERT_ROW                                         *
*&---------------------------------------------------------------------*
 FORM fcode_insert_row
               USING    p_tc_name           TYPE dynfnam
                        p_table_name             .

*&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------*
   DATA l_lines_name       LIKE feld-name.
   DATA l_selline          LIKE sy-stepl.
   DATA l_lastline         TYPE i.
   DATA l_line             TYPE i.
   DATA l_table_name       LIKE feld-name.
   FIELD-SYMBOLS                  TYPE cxtab_control.
   FIELD-SYMBOLS TYPE STANDARD TABLE.
   FIELD-SYMBOLS              TYPE i.
*&SPWIZARD: END OF LOCAL DATA------------------------------------------*

   ASSIGN (p_tc_name) TO .

*&SPWIZARD: get the table, which belongs to the tc                     *
   CONCATENATE p_table_name [] INTO l_table_name. "table body
   ASSIGN (l_table_name) TO 
. "not headerline*&SPWIZARD: get looplines of TableControl *CONCATENATEG_ p_tc_name _LINESINTO l_lines_name. ASSIGN (l_lines_name) TO. *&SPWIZARD: get current line * GET CURSOR LINE l_selline. IF sy-subrc <> 0. " append line to table l_selline = -lines + 1. *&SPWIZARD: set top line * IF l_selline > . -top_line = l_selline - + 1 . ELSE. -top_line = 1. ENDIF. ELSE. " insert line into table l_selline = -top_line + l_selline - 1. l_lastline = -top_line + - 1. ENDIF. *&SPWIZARD: set new cursor line * l_line = l_selline - -top_line + 1. *&SPWIZARD: insert initial line * INSERT INITIAL LINE INTO
INDEX l_selline. -lines = -lines + 1. *&SPWIZARD: set cursor * SET CURSOR LINE l_line. ENDFORM. " FCODE_INSERT_ROW *&---------------------------------------------------------------------* *& Form FCODE_DELETE_ROW * *&---------------------------------------------------------------------* FORM fcode_delete_row USING p_tc_name TYPE dynfnam p_table_name p_mark_name . *&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* DATA l_table_name LIKE feld-name. FIELD-SYMBOLS TYPE cxtab_control. FIELD-SYMBOLS
TYPE STANDARD TABLE. FIELD-SYMBOLS. FIELD-SYMBOLS . *&SPWIZARD: END OF LOCAL DATA------------------------------------------* ASSIGN (p_tc_name) TO . *&SPWIZARD: get the table, which belongs to the tc * CONCATENATE p_table_name [] INTO l_table_name. "table body ASSIGN (l_table_name) TO
. "not headerline*&SPWIZARD: delete marked lines *DESCRIBETABLE
LINES-lines. LOOP AT
ASSIGNING . *&SPWIZARD: access to the component ‘FLAG‘ of the table header * ASSIGN COMPONENT p_mark_name OF STRUCTURE TO . IF = X. DELETE
INDEX syst-tabix. IF sy-subrc = 0. -lines = -lines - 1. ENDIF. ENDIF. ENDLOOP. ENDFORM. " FCODE_DELETE_ROW *&---------------------------------------------------------------------* *& Form COMPUTE_SCROLLING_IN_TC *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * -->P_TC_NAME name of tablecontrol * -->P_OK ok code *----------------------------------------------------------------------* FORM compute_scrolling_in_tc USING p_tc_name p_ok. *&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* DATA l_tc_new_top_line TYPE i. DATA l_tc_name LIKE feld-name. DATA l_tc_lines_name LIKE feld-name. DATA l_tc_field_name LIKE feld-name. FIELD-SYMBOLS TYPE cxtab_control. FIELD-SYMBOLS TYPE i. *&SPWIZARD: END OF LOCAL DATA------------------------------------------* ASSIGN (p_tc_name) TO . *&SPWIZARD: get looplines of TableControl * CONCATENATE G_ p_tc_name _LINES INTO l_tc_lines_name. ASSIGN (l_tc_lines_name) TO . *&SPWIZARD: is no line filled? * IF -lines = 0. *&SPWIZARD: yes, ... * l_tc_new_top_line = 1. ELSE. *&SPWIZARD: no, ... * CALL FUNCTION SCROLLING_IN_TABLE EXPORTING entry_act = -top_line entry_from = 1 entry_to = -lines last_page_full = X loops = ok_code = p_ok overlapping = X IMPORTING entry_new = l_tc_new_top_line EXCEPTIONS * NO_ENTRY_OR_PAGE_ACT = 01 * NO_ENTRY_TO = 02 * NO_OK_CODE_OR_PAGE_GO = 03 OTHERS = 0. ENDIF. *&SPWIZARD: get actual tc and column * GET CURSOR FIELD l_tc_field_name AREA l_tc_name. IF syst-subrc = 0. IF l_tc_name = p_tc_name. *&SPWIZARD: et actual column * SET CURSOR FIELD l_tc_field_name LINE 1. ENDIF. ENDIF. *&SPWIZARD: set the new top line * -top_line = l_tc_new_top_line. ENDFORM. " COMPUTE_SCROLLING_IN_TC *&---------------------------------------------------------------------* *& Form FCODE_TC_MARK_LINES *&---------------------------------------------------------------------* * marks all TableControl lines *----------------------------------------------------------------------* * -->P_TC_NAME name of tablecontrol *----------------------------------------------------------------------* FORM fcode_tc_mark_lines USING p_tc_name p_table_name p_mark_name. *&SPWIZARD: EGIN OF LOCAL DATA-----------------------------------------* DATA l_table_name LIKE feld-name. FIELD-SYMBOLS TYPE cxtab_control. FIELD-SYMBOLS
TYPE STANDARD TABLE. FIELD-SYMBOLS. FIELD-SYMBOLS . *&SPWIZARD: END OF LOCAL DATA------------------------------------------* ASSIGN (p_tc_name) TO . *&SPWIZARD: get the table, which belongs to the tc * CONCATENATE p_table_name [] INTO l_table_name. "table body ASSIGN (l_table_name) TO
. "not headerline*&SPWIZARD: mark all filled lines *LOOPAT
ASSIGNING . *&SPWIZARD: access to the component ‘FLAG‘ of the table header * ASSIGN COMPONENT p_mark_name OF STRUCTURE TO . = X. ENDLOOP. ENDFORM. "fcode_tc_mark_lines *&---------------------------------------------------------------------* *& Form FCODE_TC_DEMARK_LINES *&---------------------------------------------------------------------* * demarks all TableControl lines *----------------------------------------------------------------------* * -->P_TC_NAME name of tablecontrol *----------------------------------------------------------------------* FORM fcode_tc_demark_lines USING p_tc_name p_table_name p_mark_name . *&SPWIZARD: BEGIN OF LOCAL DATA----------------------------------------* DATA l_table_name LIKE feld-name. FIELD-SYMBOLS TYPE cxtab_control. FIELD-SYMBOLS
TYPE STANDARD TABLE. FIELD-SYMBOLS. FIELD-SYMBOLS . *&SPWIZARD: END OF LOCAL DATA------------------------------------------* ASSIGN (p_tc_name) TO . *&SPWIZARD: get the table, which belongs to the tc * CONCATENATE p_table_name [] INTO l_table_name. "table body ASSIGN (l_table_name) TO
. "not headerline*&SPWIZARD: demark all filled lines *LOOPAT
ASSIGNING . *&SPWIZARD: access to the component ‘FLAG‘ of the table header * ASSIGN COMPONENT p_mark_name OF STRUCTURE TO . = space. ENDLOOP. ENDFORM. "fcode_tc_mark_lines *&---------------------------------------------------------------------* *& Form PRM_ADD_LIST *&---------------------------------------------------------------------* * text *----------------------------------------------------------------------* * --> p1 text * <-- p2 text *----------------------------------------------------------------------* FORM prm_add_list . DATA:lt_file TYPE filetable. DATA:ls_file LIKE LINE OF lt_file. DATA:gv_return TYPE i. CALL METHOD cl_gui_frontend_services=>file_open_dialog * EXPORTING * window_title = * default_extension = * default_filename = * file_filter = * with_encoding = * initial_directory = * multiselection = CHANGING file_table = lt_file rc = gv_return * user_action = * file_encoding = EXCEPTIONS file_open_dialog_failed = 1 cntl_error = 2 error_no_gui = 3 not_supported_by_gui = 4 OTHERS = 5. IF sy-subrc <> 0. ENDIF. IF lt_file IS NOT INITIAL. LOOP AT lt_file INTO ls_file. gw_list-string = ls_file-filename. SPLIT ls_file-filename AT \‘ INTO ls_file-filename gw_list-name. WHILE gw_list-name CS \. SPLIT ls_file-filename AT \ INTO ls_file-filename gw_list-name. ENDWHILE. APPEND gw_list TO gt_list. ENDLOOP. SORT gt_list BY name. DELETE ADJACENT DUPLICATES FROM gt_list COMPARING name. ENDIF. ENDFORM.

在屏幕上分两块,左边为视频或音频播放栏,右边为文件列表,可新增本地文件,可点击文件播放

技术分享

SAP播放本地视频及音频(仅限于window MediaPlayer可播放文件)


推荐阅读
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • CentOS 6.5安装VMware Tools及共享文件夹显示问题解决方法
    本文介绍了在CentOS 6.5上安装VMware Tools及解决共享文件夹显示问题的方法。包括清空CD/DVD使用的ISO镜像文件、创建挂载目录、改变光驱设备的读写权限等步骤。最后给出了拷贝解压VMware Tools的操作。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 在project.properties添加#Projecttarget.targetandroid-19android.library.reference.1..Sliding ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • PDF内容编辑的两种小方法,你知道怎么操作吗?
    本文介绍了两种PDF内容编辑的方法:迅捷PDF编辑器和Adobe Acrobat DC。使用迅捷PDF编辑器,用户可以通过选择需要更改的文字内容并设置字体形式、大小和颜色来编辑PDF文件。而使用Adobe Acrobat DC,则可以通过在软件中点击编辑来编辑PDF文件。PDF文件的编辑可以帮助办公人员进行文件内容的修改和定制。 ... [详细]
author-avatar
嗳沫沫情深
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有